python 賦值語句
阿新 • • 發佈:2018-11-20
python中的語句:
- 賦值語句
- if語句,當條件成立時執行語句塊。經常與else, elif(相當於else if)配合使用。
- for語句,遍列列表、字串、字典、集合等迭代器,依次處理迭代器中的每個元素。
- while語句,當條件為真時,迴圈執行語句塊。
- try語句。與except, finally, else配合使用處理在程式執行中出現的異常情況。
- class語句。用於定義型別。
- def語句。用於定義函式和型別的方法。
- pass語句。表示此行為空,不執行任何操作。
- assert語句。用於程式調適階段時測試執行條件是否滿足。
- with語句。Python2.6以後定義的語法,在一個場景中執行語句塊。比如,執行語句塊前加鎖,然後在語句塊執行退出後釋放鎖。
- yield語句。在迭代器函式內使用,用於返回一個元素。
- raise語句。丟擲一個異常。
- import語句。匯入一個模組或包。常用寫法:from module import name, import module as name, from module import name as anothername
特別說明,以上劃分也不是很嚴格,有的內容,有的朋友不認為屬於語句。這沒關係,反正就是那個東西,在程式設計中使用。不糾結於名詞歸類上。總之這些都是要掌握的,才能順利程式設計呢。
賦值語句
例項:
>>> hiekay = 1 >>> python = 2 >>> x, y = hiekay, python #相當於x=hiekay,y=python >>> x 1 >>> y 2 >>> x, y #輸出的是tuple (1, 2) >>> [x, y] #這就是一個list [1, 2] >>> [a, b] = [hiekay, python] >>> a 1 >>> b 2 >>> a, b (1, 2) >>> [a, b] [1, 2]
換一種方式,以上兩種賦值方法交叉組合一下:
>>> [c, d] = hiekay, python
>>> c
1
>>> d
2
>>> c, d
(1, 2)
>>> f, g = [hiekay, python]
>>> f
1
>>> g
2
>>> f, g
(1, 2)
居然也行。其實,賦值,就是對應著將左邊的變數和右邊的物件關聯起來。
有這樣一個有趣的問題,如果a=3,b=4,想把這兩個變數的值調換一下,也就是a=4,b=3。在有的高階語言中,是要先引入另外一個變數c做為中間變數:
a = 3
b = 4
c = a #即c=3
a = b #a=4
b = c #b=3
python 更牛逼,不需要中間變數:
>>> hiekay = 100
>>> python = 200
>>> hiekay, python = python, hiekay
>>> hiekay
200
>>> python
100
神奇吧。
序列賦值
其實上面實驗的賦值,本質上就是序列賦值。如果左邊的變數是序列,右邊的物件也是序列,兩者將一一對應地進行賦值。
>>> [a, b, c] = (1, 2, 3) #左右序列一一對應,左邊是變數,右邊是物件
>>> a
1
>>> b
2
>>> c
3
>>> (a,b,c) = [1,2,3]
>>> a
1
>>> b
2
>>> c
3
>>> [a,b,c] = "kay" #不要忘記了,str也是序列型別的資料
>>> a
'k'
>>> b
'a'
>>> c
'y'
>>> (a,b,c) = "kay"
>>> a,c
('k', 'y')
>>> a,b,c = 'kay' #與前面等價
>>> a,b
('k', 'a')
>>> a,b = 'kay' #報錯了,因為左邊和右邊不是一一對應
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
>>> (a,b),c = "hi","kay" #注意觀察,這樣的像是是如何對應的
>>> a,b,c
('h', 'i', 'kay')
>>> string = "hiekay"
>>> a,b,c = string[0],string[1],string[2] #取切片也一樣
>>> a,b,c
('h', 'i', 'e')
>>> (a,b),c = string[:2],string[2:]
>>> a,b,c
('h', 'i', 'ekay')