python——變數

xinet發表於2017-08-17

參考資料: Python程式設計與實現

變數名的命名規則

  1. 僅僅由大、小寫英文字母,下劃線(_),數字(不可作為變數名的開頭)組合而成;
  2. 不能使用Python關鍵字和函式名作為變數名;
  3. 變數名不能包含空格,但可以使用_來分隔其中的單詞;
  4. 變數名應既簡短又具有描述性;
  5. 慎用字母lO,因為它們可能被人錯看成數字1和0。

python變數不需要宣告變數型別

python規定,變數是沒有型別之分的,變數的使用不需要提前宣告和定義,只需對變數進行賦值,賦值的同時該變數即被建立。

Python是動態的,變數的型別由賦予它的值來決定。
示例:

a=2
type(a)
int
b=a
type(b)
int
a=2.5
type(a)
float
type(b)
int
print(a)
print(b)
2.5
2
b=b*a
print(b)
5.0

注意:
在程式中可以隨時修改變數的值,而python將始終記錄變數的最新值。
示例:

a=`hello`
print(a)

a=`world`
print(a)
hello
world

賦值語句(沒有返回值)

形式:(變數=值)

增值變數

(A+=B) 等價於 (A=A+B)
+可以換成-,*,/,%,**等符號。

變數的引用

在Python中,物件是最基本的概念。整數,浮點數,字串,元組,列表,字典等資料結構都是作為物件存在的。
每個物件都有兩個標準的頭部資訊:

  1. 標識物件的型別的型別識別符號;
  2. 記錄物件引用次數的計數器。

Python中變數是沒有型別的,型別的概念是屬於物件的。使用id()函式可以返回物件的記憶體地址。

n=7
id(n)
1973873296

賦值語句的使用原理

  1. 建立一個物件,前提是該物件未被建立。
  2. 建立一個變數,前提是該變數未被建立。
  3. 將物件的引用值賦給變數,引用器值增加1。

引用就是將物件和變數繫結起來。通過引用將變數指向了一個物件的記憶體空間,故可以說變數是物件的標籤。

賦值語句是使變數建立物件的引用值的,而不是複製物件。
以下示例可以很好的說明:

R=[2,4,5,8]
S=R
S
[2, 4, 5, 8]
R
[2, 4, 5, 8]
id(S)==id(R)
True
R[2]=6
R
[2, 4, 6, 8]
S
[2, 4, 6, 8]
id(S)==id(R)
True

由於id(S)==id(R)返回True,故而賦值不是複製,僅僅是引用物件(即“將物件賦值給變數”相當於“用變數給物件貼上了標籤”)

增量賦值與普通賦值的區別

  • 二者對於不可變物件的處理方式見賦值語句的使用原理
  • 對於可變物件,二者便會不同,增量賦值會將可變物件就地修改,而不是建立新的物件。

舉例說明:

L=[1,2,3]
id(L)
2196737070792
L+=[4]
id(L)
2196737070792
L=L+[4]
id(L)
2196741665416

多重賦值

示例:

X=Y=Z=22
print(X)
print(Y)
print(Z)
22
22
22
X,Y,Z=2,"U",3.56
print(X)
print(Y)
print(Z)
2
U
3.56
Y,X=X,Y
print(X)
print(Y)
U
2

探尋有趣之事!


相關文章