- Python語言從入門到精通
- 陳強編著
- 1117字
- 2020-09-18 18:00:33
2.5 變量

↑掃碼看視頻
變量是計算機內存中的一塊區域,變量可以存儲規定范圍內的值,而且值可以改變。基于變量的數據類型,解釋器會分配指定內存,并決定什么數據可以被存儲在內存中。在計算機編程語言中,將其值在程序的執行過程中可以發生變化的量稱為變量。
2.5.1 聲明變量
Python語言中不需要單獨聲明變量,變量的賦值操作就是變量的聲明和定義過程。在內存中創建變量時,需要包含變量的標識、名稱和數據等信息。
注意:要創建合適的變量名,需要經過一定的編程實踐,在程序復雜時尤其如此。隨著讀者編寫和閱讀的代碼越來越多,將越來越善于創建有意義的變量名。

實例文件bianliang.py的具體實現代碼如下所示。

在上述代碼中對變量x進行了3次賦值,第1次賦值為“1”,第2次賦值為“2”,第3次賦值為“hello python”。在Python程序中,一次新的賦值將創建一個新的變量。即使變量的名稱相同,但變量的標識卻并不同。執行后輸出的結果如下所示。

print(id(x))的功能是返回變量x的內存地址。
另外,在Python語言中,可以同時賦值多個變量。

實例文件tongshi.py的具體實現代碼如下所示。

在上述代碼中,對變量a、b進行同時賦值,分別賦值為“0”和“1”,最后分別輸出變量a和b的值。執行后輸出的結果如下所示。


2.5.2 局部變量
在Python程序中,局部變量是指只能在函數或者代碼塊內使用的變量,函數或者代碼塊一旦結束運行,局部變量的生命周期也將結束。局部變量只有在被創建的函數或代碼塊內有效。例如在下面的實例中,演示了局部變量只能在定義的函數或者代碼塊內使用的過程。

文件file01.py的具體實現代碼如下所示。

在上述代碼中定義了函數fun(),在函數fun()中定義了一個局部變量local_var,并將變量local_var賦值為“100”。局部變量local_var只在函數fun()內有效,只能被函數fun()訪問。即使是在文件file01.py中定義的函數fun2()也不能使用local_var。
執行文件file01.py后會出錯,執行結果如圖2-3所示。

圖2-3 執行結果
而在另外一個實例文件file02.py中,雖然用import語句導入了文件file01.py中的功能,但是因為變量local_var是一個局部變量,所以不能在文件file02.py中起作用。實例文件file02.py的具體實現代碼如下所示。

2.5.3 全局變量
在Python程序中,在函數外面定義的變量叫作全局變量。全局變量能夠被不同的函數、類或文件所共享使用,可以被文件內的任何函數和外部文件所訪問。

實例文件quan.py的具體實現代碼如下所示。

在上述代碼中,在函數外部分別定義了2個全局變量g_num1和g_num2,并分別設置初始值為“1”和“2”。在函數add_num()內部使用了全局變量g_num1,在使用時用到了關鍵字global。
①在調用函數add_num()時,result為局部變量,執行后會輸出“4”。
②在調用函數sub_num()時,result為局部變量,執行后會輸出“2”。
③在執行add_num()函數時,使用關鍵字global改變了全局變量g_num1的值,執行后會輸出“3”。
④在執行sub_num()函數時,使用關鍵字global改變了全局變量g_num2的值,執行后會輸出“5”。
實例文件quan.py的執行結果如圖2-4所示。

圖2-4 執行結果
- 大數據技術與應用基礎
- PPT,要你好看
- Visualforce Development Cookbook(Second Edition)
- 火格局的時空變異及其在電網防火中的應用
- 輕松學Java Web開發
- Dreamweaver CS3網頁制作融會貫通
- 大數據技術入門(第2版)
- 大數據安全與隱私保護
- Learning Azure Cosmos DB
- 網站入侵與腳本攻防修煉
- Spatial Analytics with ArcGIS
- LMMS:A Complete Guide to Dance Music Production Beginner's Guide
- 網絡脆弱性掃描產品原理及應用
- 三菱FX/Q系列PLC工程實例詳解
- Mastering Predictive Analytics with scikit:learn and TensorFlow