python 賦值
阿新 • • 發佈:2018-11-06
變數命名
名稱格式:(下劃線或者字母)+(任意數目的字母,數字或下劃線)
注意:
- 區分大小寫
- 禁止使用保留字
- 遵守通常習慣 (駝峰)
- 以單一下劃線開頭的變數名(_X)不會被from module import *語句匯入的。
- 前後有下劃線的變數名(_ X _)是系統定義的變數名,對直譯器有特殊意義。
- 以兩個下劃線開頭,但結尾沒有兩個下劃線的變數名(__X)是類本地(壓縮)變數。
- 通過互動模式執行時,只有單個下劃線變數(_x)會儲存最後的表示式結果。
需要解釋一下保留字,就是python裡面保留了一些單詞,這些單詞不能讓使用者來用作變數名稱。都有哪些呢?(python2和python3少有差別,但是總體差不多)
and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while yield
實驗:
>>> not = 3 File "<stdin>", line 1 not = 3 ^ SyntaxError: invalid syntax >>> pass = "hello,world" File "<stdin>", line 1 pass = "hello,world" ^ SyntaxError: invalid syntax
在互動模式的實驗室中,用保留字做變數,就報錯了。當然,這時候就要換名字了。
以上原則,是基本原則,為了讓程式更具有可讀性:
- 名字具有一定的含義。比如寫:n = “hiekay”,就不如寫:name = "hiekay"更好。
- 名字不要誤導別人。比如用account_list指一組賬號,就會被人誤解為是list型別的資料,事實上可能是也可能不是。所以這時候最好換個名稱,比如直接用accounts。
- 名字要有意義的區分,有時候你可能會用到a1,a2之類的名字,最好不要這麼做,換個別的方式,通過字面能夠看出一定的區分來更好。
- 最好是名稱能夠讀出來,千萬別自己造英文單詞,也別不要用漢語拼音縮寫來做為名字,更麻煩了,還不如全拼。最好是用完整的單詞或者公認的不會引起歧義的縮寫。
- 單個字母和數字就少用了,不僅是顯得你太懶惰,還會因為在一段程式碼中可能有很多個單個的字母和數字,為搜尋帶來麻煩,別人也更不知道你的i和他理解的i是不是一個含義。
總之,取名字,講究不少。不論如何,要記住一個標準:明確
賦值語句
任何一個變數,在python中,只要想用它,就要首先賦值。
**語句格式:**變數名稱 = 物件
還有一種賦值方式,叫做隱式賦值,通過import、from、del、class、for、函式引數。等模組匯入,函式和類的定義,for迴圈變數以及函式引數都是隱式賦值運算。
>>> name = "hiekay"
>>> name, website = "hiekay","hiekay.github.io" #多個變數,按照順序依次賦值
>>> name
'hiekay'
>>> website
'hiekay.github.io'
>>> name, website = "hiekay" #有幾個變數,就對應幾個物件,不能少,也不能多
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
如果這樣賦值,也得兩邊數目一致:
>>> one,two,three,four = "good"
>>> one
'g'
>>> two
'o'
>>> three
'o'
>>> four
'd'
這就相當於把good分拆為一個一個的字母,然後對應著賦值給左邊的變數。
>>> [name,site] = ["hiekay","hiekay.github.io"]
>>> name
'hiekay'
>>> site
'hiekay.github.io'
>>> name,site = ("hiekay","hiekay.github.io")
>>> name
'hiekay'
>>> site
'hiekay.github.io'
其實,賦值的樣式不少,核心就是將變數和某物件對應起來。物件,可以用上面的方式,也許是這樣的
>>> site = "hiekay.github.io"
>>> name, main = site.split(".")[0], site.split(".")[1] #str.split(<sep>) 分割字串
>>> name
'hiekay'
>>> main
'github'
增強賦值
在python中,將下列的方式稱為增強賦值:
增強賦值語句 | 等價於語句 |
---|---|
x+=y | x = x+y |
x-=y | x = x-y |
x*=y | x = x*y |
x/=y | x = x/y |
其它類似結構:x&=y x|=y x^=y x%=y x>>=y x<<=y x**=y x//=y
例子:有一個list,想得到另外一個列表,其中每個數比原來list中的大2。可以用下面方式實現:
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
... i = i+2
... number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]
用上面的增強賦值,i = i+2可以寫成 i +=2 :
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
... i +=2
... number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]
因為i +=2,比i = i+2計算更快,後者右邊還要拷貝一個i。
上面的例子還能修改:
>>> [i+2 for i in number]
[3, 4, 5, 6, 7]