官术网_书友最值得收藏!

1.3.2 變量與常量

任何編程語言都需要處理數據,如數字、字符串、字符等,用戶可以直接使用數據,也可以將數據保存到變量中,方便以后使用。

變量(Variable)可以看成一個小箱子,專門用來“盛裝”程序中的數據。每個變量都擁有獨一無二的名字,通過變量的名字就能找到變量中的數據。從底層看,程序中的數據最終都要存儲到內存中,變量其實就是這塊內存的名字。圖1-24所示是變量age的示意。

圖1-24 變量示意

和變量對應的是常量(Constant),它們都是用來“盛裝”數據的小箱子,不同的是:變量保存的數據可以被多次修改,而常量一旦保存某個數據之后就不能修改了。

1.變量的賦值

在編程語言中,將數據放入變量的過程叫作賦值(Assignment)。Python使用等號“=”作為賦值運算符,具體格式為:

其中,name表示變量名;value表示值,也就是要存儲的數據。

例如,下面的語句將整數22賦值給變量num:

在程序的其他地方,num就代表整數22,使用num也就是使用22。

【例1-6】 變量賦值。

變量的值不是一成不變的,它可以隨時被修改,只要重新賦值即可。另外用戶也不用關心數據的類型,可以將不同類型的數據賦值給同一個變量。

【例1-7】 變量賦值的變化。

運算結果:

除了賦值單個數據,用戶也可以將表達式的運行結果賦值給變量。

【例1-8】 將表達式的運行結果賦值給變量。

運算結果:

2.下畫線、雙下畫線開始的特殊變量及特殊方法專用標識

Python用下畫線和雙下畫線作為變量前綴和后綴指定的特殊變量。

(1)_xxx變量名

_xxx被看作是“私有的”變量,在模塊或類外不可以使用。當變量是私有的時候,用_xxx來表示變量是很好的習慣。_xxx變量是不能用“from module import *”導入的。在類中“單下畫線”開始“_foo”的成員變量或類屬性叫作保護變量,意思是只有類對象和子類對象自己能訪問這些變量。

(2)__xxx類中的私有變量名

“雙下畫線”開始“__foo”的變量是私有成員變量,意思是只有類對象自己能訪問,連子類對象也不能訪問這個數據。

(3)__xxx__特殊方法專用標識

以雙下畫線開頭和結尾的“__foo__”代表Python里的特殊方法,如__init__(self,...)代表類的構造函數。這樣的系統特殊方法還有許多,如:

因此要注意避免用下畫線作為一般變量名的開始。

3.常量、內置常量

變量是變化的量,常量則是不變的量。Python中沒有使用語法強制定義常量。但是Python有少數的常量存在于內置命名空間中,稱為內置常量,具體如下。

(1)False

bool類型的假值。給False賦值是非法的并會引發SyntaxError。

(2)True

bool類型的真值。給True賦值是非法的并會引發SyntaxError。

(3)None

NoneType類型的唯一值。None經常用于表示因為默認參數未傳遞給函數時的值。需要注意的是,給None賦值是非法的,并會引發SyntaxError報錯。

(4)NotImplemented

二進制特殊方法應返回的特殊值,如__eq__()、__lt__()、__add__()、__rsub__()等,表示操作沒有針對其他類型實現。為了相同的目的,可以通過就地二進制特殊方法,如__imul__()、__rightnd__()等作為返回值,它的邏輯值為真。

(5)Ellipsis

與省略號的字面意思相同。特殊值主要與用戶定義的容器數據類型的擴展切片語法結合使用。

(6)__debug__

如果Python沒有以-O選項啟動,則此常量為真值。

(7)quit(code=None)、exit(code=None)

當打印此對象時,會打印出一條消息,例如“Use quit() or Ctrl-D (i.e. EOF) to exit”,當調用此對象時,將使用指定的退出代碼來引發SystemExit。

(8)copyright、credits

打印或調用的對象分別打印版權或作者的文本。

(9)license

當打印此對象時,會打印出一條消息“Type license() to see the full license text”。當調用此對象時,將以分頁形式顯示完整的許可證文本(每次顯示一屏)。

當然,用模塊和類可以實現真正的常量,這在本書第5章進行詳細介紹。

主站蜘蛛池模板: 奇台县| 文昌市| 新余市| 龙川县| 铜山县| 清涧县| 秭归县| 法库县| 扬中市| 岑溪市| 张家界市| 双牌县| 滕州市| 广平县| 曲阜市| 灌南县| 万宁市| 得荣县| 宁陕县| 礼泉县| 成武县| 剑阁县| 丰顺县| 伊吾县| 清丰县| 礼泉县| 松桃| 逊克县| 普宁市| 龙里县| 靖西县| 永昌县| 四川省| 汽车| 天等县| 务川| 醴陵市| 江山市| 德令哈市| 东宁县| 枣强县|