1. 程式人生 > >python 賦值語句

python 賦值語句

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')

總結: 變數與值 一一對應 .