一削樊、 變量的聲明
python語(yǔ)言是動(dòng)態(tài)語(yǔ)言
- 變量不需要事先聲明
- 變量的類型不需要聲明
每個(gè)變量在使用前都必須賦值猖毫,變量賦值以后該變量才會(huì)被創(chuàng)建打却。
在 Python 中释簿,變量就是變量蕉斜,它沒(méi)有類型椿争,我們所說(shuō)的 類型
是變量所指的內(nèi)存中對(duì)象的類型怕膛。
等號(hào)(=)用來(lái)給變量賦值。
等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是其指向的具體的值秦踪。
a = 1
a = 'Tom'
二褐捻、 變量命名規(guī)則:
可以包含以下字符
大小寫字母(a-z,A-Z)
變量名區(qū)分大小寫; a 和 A 是不同的變量
數(shù)字(0-9)
-
下劃線(_)
==不可以以數(shù)字開(kāi)頭==
三、 變量命名潛規(guī)則:
- 不要以單下劃線和雙下劃線開(kāi)頭椅邓;如:_user或 __user
- 變量命名要易讀柠逞;如:user_name,而不是username
- 不用使用標(biāo)準(zhǔn)庫(kù)中(內(nèi)置)的模塊名或者第三方的模塊名
- 不要用這些 Python 內(nèi)置的關(guān)鍵字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', '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']
> 上面打印出來(lái)的數(shù)據(jù)在 Python 中被稱為列表, 列表是 Python中一種數(shù)據(jù)結(jié)構(gòu)景馁。關(guān)于數(shù)據(jù)結(jié)構(gòu)板壮,后面的章節(jié)會(huì)詳細(xì)說(shuō)明。
>列表的都是 Python3 中的關(guān)鍵字合住。
#可以使用一下方法驗(yàn)證绰精,返回 True 就是 Python 的關(guān)鍵字
>>> keyword.iskeyword('del')
True
>>>
四、變量賦值
python 中使用等號(hào) =
對(duì)變量進(jìn)行賦值,透葛。
等號(hào)左邊被稱為變量名笨使,等號(hào)右邊稱為變量的值,確切的說(shuō)是對(duì)象
n = 5
五僚害、Python 中的變量是什么
在 python 中究竟該如何正確理解變量的賦值過(guò)程呢硫椰?
s = 'hello'
以上的變量賦值,應(yīng)該說(shuō)成把變量分配給對(duì)象更合理萨蚕。
hello
這個(gè)字符串對(duì)象會(huì)在內(nèi)存中先被創(chuàng)建靶草,之后再把變量名 s
分配給這個(gè)對(duì)象。
所以要理解 Python 中的變量賦值门岔,應(yīng)該始終先看
等號(hào)右邊
。
對(duì)象是在右邊先被創(chuàng)建或者被獲取
烤送,在此之后左邊的變量名才會(huì)被綁定到對(duì)象上寒随,這就像為對(duì)象貼上了標(biāo)簽。
變量名本質(zhì)上是對(duì)象的標(biāo)簽或者說(shuō)是對(duì)象的名字帮坚,當(dāng)然一個(gè)對(duì)象可以有多個(gè)標(biāo)簽或者名字
妻往。
比如: 張三 和 小張 指的都是同一個(gè)人
請(qǐng)看下面的代碼示例:
a = 1
b = a
a = 2
print(b) # b 會(huì)是 ?
a = 1
時(shí)如下圖:
b = a
時(shí)如下圖:
a = 2
時(shí)如下圖:
上面的 b = a
我們稱它為 傳遞引用,此時(shí)對(duì)象會(huì)擁有兩個(gè)名稱(標(biāo)簽) 试和,分別是 a
和 b
六讯泣、變量的多元賦值
在 Python3 中你可以這樣給變量賦值
In [2]: x, y, z = 1, 2, 3
In [3]: x
Out[3]: 1
In [4]: y
Out[4]: 2
In [5]: z
Out[5]: 3
當(dāng)然也可以這樣
In [10]: a, b, c = 'abc'
In [11]: a
Out[11]: 'a'
In [12]: b
Out[12]: 'b'
In [13]: c
Out[13]: 'c'
假如你需要對(duì)一個(gè)序列類型中的數(shù)據(jù)進(jìn)行一一解開(kāi)賦值,那就需要等號(hào)左邊的變量名和序列類型數(shù)據(jù)中的元素個(gè)數(shù)相同阅悍。
這種多元賦值方式在 Python 中也可以稱為元組解包好渠。
七昨稼、Python 中對(duì)象(變量的值)都有三個(gè)特性
# 唯一標(biāo)識(shí),是對(duì)象在內(nèi)存中的整數(shù)表示形式拳锚,在 CPython 中可以理解為# 內(nèi)存地址
# 可以用 id 這個(gè)函數(shù)查看
id(10) # 直接給一個(gè)對(duì)象
id(n) # 給你變量名
# 類型假栓, 對(duì)象都有不同的類型,用 type 這個(gè)函數(shù)查看
type(10)
type(n)
# 值霍掺,對(duì)象本身
10