淺談 python變數
python變數概念
程式執行的過程中,很多資料都在變化的過程,我們需要一種機制把這種變化體現出來,變數是我們記錄這種變化的方式。
python以及其它各種語言的變數 ,其作用都是用於存資料的,可以存動態的資料,大小,速度, 也可以存相對靜態的資料,如性別 年齡等。
我們之所以需要變數去存資料,是為了在程式執行過程中後面去取出來變數的值,存的目的是為了取,為了使用。 存是手段,取才是目的。
變數的使用原則: 先定義 後引用
name = 'alin'
print(name)
alin
變數的三大組成部分
變數名字 賦值符號 變數的值
變數名的要求
上面說過 變數的作用是存數值,為了方便後面的使用,當我們在使用變數的值的時候 是通過變數名把值取出來的,所以在命令變數名的時候,要儘量做到,見名知意。什麼意思那 比如我們給30個小朋友起名字 為了區分男女,女孩名字一般叫 什麼花 什麼芬 什麼雅, 男孩叫 什麼勇 什麼壯,什麼巨集 這樣當我們看到名字的時候 不用去檢視詳細的個人資料就能知道小朋友的性別,總結一句話
不要給小女孩起名 王大錘
python對變數名的命名也有一些具體的要求
-
變數名只能是 字母、數字或下劃線的任意組合
像我們的名字 只能出現漢字和阿拉伯字母,你給自己起名 劉? 試試民政局的人打不打你)
-
變數名的第一個字元不能是數字
(就像我們的名字第一個是姓氏,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']
python的命名風格推薦小寫字母+下劃線的方式
age_student = 20
變數的三個特性
- id : 反映的是變數在記憶體中的地址,記憶體地址不同,則id不同,
我們可以把記憶體當成酒莊 變數名就是酒瓶上的名字 記憶體地址就是酒瓶 變數的值就是裡面的酒。
name = 'alin'
print(id(name))
2683195291888
-
type:不同型別的值用來表示記錄不同的狀態
name = 'alin' print(type(name))
<class 'str'>
-
value:值
name = 'alin' print(name)
alin
-
變數的比較
is與==
-
is 比較左右兩個值的身份是否相同, 酒莊舉例 這輛到底是不是一瓶酒
-
== 比較左右兩邊的值是否相同 酒莊舉例 這兩瓶裝的到底是不是一樣的酒
x = 'info:age:18' y = 'info:age:18' print(id(x)) print(id(y)) print(x == y) print(x is y)
3019507091920
1512378137008
True
False注: pycharm中會做記憶體優化 需要在命令列操作驗證
得出的結果x和y是相等的 但是x不是y
小整數池[-5,256] 在python中 一些常用的值 python會預先開闢出一塊空間,相同的變數的值直接取用,不在另外開闢記憶體空間,節省記憶體
x = -5 y = -5 print(id(x)) print(id(y))
140718716872320
140718716872320x = -6 y = -6 print(id(x)) print(id(y))
1908425730864
1908425728176x = 256 y = 256 print(id(x)) print(id(y))
140718716864064
140718716864064x = 257 y = 257 print(id(x)) print(id(y))
2290485209904
2290485207216注意:python語法中沒有常量的概念,但是在程式的開發過程中會涉及到常量的概念
AGE_OF_ALIN = 73 # 小寫字母全為大寫代表常量,這只是一種約定、規範
AGE_OF_ALIN='19' print(AGE_OF_ALIN)
19
-