使用者:Xyy23330121/Python/變量
變量是程序運行時儲存數據的方式。
在 Python 中創建變量是簡單的。比如,執行以下語句:
a = 0
一個名為 a
的變量就創建完成了,該變量被賦值為 0
,即該變量存儲的數據為 0
。
如果需要調用該變量所存儲的數據,只要使用變量名即可。比如:
print(a) #在屏幕上输出 a 的内容,本例中输出 0
b = a + 1 #用 a 的值参与加法运算。关于数学运算,参见之后的第三章。
print(b) #在屏幕上输出 b 的内容,本例中输出 1
運行以上程序的結果為:
0
1
並非任何名稱都可以作為變量的名稱,在給變量命名時要遵循一些命名規則。 Python 的變量名可以使用字母、下劃線、數字,甚至可以使用中文作變量名。但是數字不能放在開頭。以下四個名稱都是合法的:
A=1 #使用大写字母
a=2 #使用小写字母,python的变量名称区分大小写
_a=3 #使用下划线(建议不要单独使用下划线)
_4=4 #使用数字,但数字不能放在开头
中文=5 #使用中文变量名
除此之外, Python 保留了一些名稱作為代碼中的關鍵字使用[1],這些關鍵字不能作為變量名。以下是關鍵字列表:
False |
assert |
continue |
except |
if |
nonlocal |
return
|
None |
async |
def |
finally |
import |
not |
try
|
True |
await |
del |
for |
in |
or |
while
|
and |
break |
elif |
from |
is |
pass |
with
|
as |
class |
else |
global |
lambda |
raise |
yield
|
請注意不要以這些關鍵字命名變量。由於關鍵字列表隨着Python 版本更新可能會更新,對於對應的版本,可以查閱參考資料中的Python 文檔[1]。
除上述查找 Python 文檔之外,也可以使用以下 Python 代碼來查閱關鍵字列表:
import keyword
print(keyword.kwlist)
以上代碼輸出的結果為:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
本段代碼用到了import
語句[2]。利用import
語句可以調用其他人寫好的代碼。我們稱這種可以被調用的代碼的組合為一個「模塊」。這裡調用的是 Python 內置的 keyword
模塊。該模塊內有一個列表 kwlist
,我們可以用 keyword.kwlist
的方式去訪問已調用的 keyword
包中的列表 kwlist
。
除此之外,以下的方法也是可行的。
利用以下方法,可以同時導入多個模塊:
import keyword, math, string
這等同於:
import keyword
import math
import string
import keyword as kw
print(kw.kwlist)
本方法給模塊起了一個別名。良好的別名對於閱讀代碼以及寫代碼時都有幫助。
使用別名時,也可以同時導入多個:
import keyword as kw, math, string as st
from keyword import kwlist
print(kwlist)
如果不想輸入模塊名,且只需要用到模塊中的少數幾個內容,則可以單獨只導入 kwlist
。
可以使用別名和進行多重導入:
from keyword import kwlist as kwl
print(kwl)
from math import ceil as up, floor as down, trunc
可以使用 *
來全部導入:
from keyword import *
print(kwlist)
關於 import 語句的更多說明以及使用方式,參見 Python 文檔,這裡不再贅述。
除上述的 a = 0
可以被用於給變量賦值之外,Python 還支持以下幾種便捷的賦值方法。
Python 支持序列解包功能。從而可以進行以下操作:
a,b = 0,1 #等同于 a = 0 ,同时 b = 1
利用序列解包方法,可以簡單對調兩個變量的值:
a,b = b,a
以上代碼等同於:
temp = a
a = b
b = temp
del temp
與序列解包相關的更多內容,參見之後的元組章節。
鏈式賦值會給多個變量賦相同的值。
a = b = 1 #等同于 b = 1 ,然后 a = b
a := 3 #等同于 a = 3
賦值表達式會給表達式中變量賦值,隨後輸出該變量的值。以下面代碼為例:
b = (a := 3) + 1
括號內賦值表達式先進行計算,然後再計算括號外的加法。因此該代碼等同於:
a = 3 #先计算括号内赋值表达式
b = a + 1 #赋值表达式将 a 传递到括号外,剩下的计算等同于这个