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

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 執行結果

主站蜘蛛池模板: 米脂县| 永川市| 潞西市| 子长县| 武邑县| 楚雄市| 南涧| 荃湾区| 和田市| 东兰县| 永顺县| 阜南县| 育儿| 鹤峰县| 竹溪县| 炉霍县| 微山县| 瑞安市| 龙里县| 永安市| 盈江县| 灌云县| 苏尼特右旗| 平潭县| 福贡县| 清河县| 香港| 盐源县| 闵行区| 永平县| 兴安县| 门源| 新竹县| 九台市| 阿城市| 安图县| 尖扎县| 从化市| 安福县| 赣榆县| 竹山县|