使用者:Xyy23330121/Python/變量

來自維基學院


變量是程序運行時儲存數據的方式。

創建和使用變量[編輯 | 編輯原始碼]

提示
如果讀者有C語言或其他語言的基礎,建議在學習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的变量名称区分大小写
_=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]

import 語句[編輯 | 編輯原始碼]

關於列表
關於列表,參見之後的列表章節。

除上述查找 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 import[編輯 | 編輯原始碼]

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
import keyword
print(keyword.kwlist)

賦值表達式[編輯 | 編輯原始碼]

a := 3 #等同于 a = 3

賦值表達式會給表達式中變量賦值,隨後輸出該變量的值。以下面代碼為例:

b = (a := 3) + 1

括號內賦值表達式先進行計算,然後再計算括號外的加法。因此該代碼等同於:

a = 3     #先计算括号内赋值表达式
b = a + 1 #赋值表达式将 a 传递到括号外,剩下的计算等同于这个

參考資料[編輯 | 編輯原始碼]

  1. 1.0 1.1 https://docs.python.org/zh-cn/3.12/reference/lexical_analysis.html#keywords
  2. 關於import語句的Python文檔 https://docs.python.org/zh-cn/3.12/reference/simple_stmts.html#import