目錄2. 可變和不可變型別
3. 區域性變數和全域性變數
3.2 全域性變數
在python
中
注意:如果變數已經被定義,當給乙個變數賦值的時候,本質上是修改了資料的引用
a = 1
b = 2
c = 2
在python
中,函式的實參/返回值都是是靠引用來傳遞來的,寫了小的例子嘗試下:
def test(num):
print("-" * 50)
print("%d 在函式中的記憶體位址是 %d" % (num, id(num)))
result = 12
print("返回值 %d 在記憶體中的位址是 %d" % (result, id(result)))
print("-" * 50)
return result
n = 100
print("%d在呼叫之前的記憶體位址是%d" % (n, id(n)))
r = test(n)
print("呼叫函式後,實參 %d 的記憶體位址是 %d" % (n, id(n)))
print("呼叫函式後,返回值 %d 的記憶體位址是 %d" % (r, id(r)))
可變型別,記憶體中的資料可以被修改:
注意
可變型別的資料變化,是通過方法來實現的
如果給乙個可變型別的變數,賦值了乙個新的資料,引用會修改
雜湊
是一種演算法,其作用就是提取資料的特徵碼(指紋)
在python
中,設定字典的鍵值對時,會首先對key
進行hash
已決定如何在記憶體中儲存字典的資料,以方便後續對字典的操作:增、刪、改、查
例子:
區域性變數的作用
def test1():
num = 1
print(num)
num = 22
print("修改過後 %d" % num)
def test2():
num = 30
print(num)
test1()
test2()
print("結束")
區域性變數的生命週期num = 10
def test1():
print(num)
def test2():
num = 22
print(num)
test1()
test2()
print(num)
注意:函式執行時,需要處理變數時會:
首先查詢函式內部是否存在指定名稱 的區域性變數,如果有,直接使用
如果沒有,查詢函式外部是否存在指定名稱 的全域性變數,如果有,直接使用
如果還沒有,程式報錯!
1) 在函式中不能直接修改全域性變數的引用
num = 10
def test1():
print("test1" + "*" * 50)
num = 100
print(num)
def test2():
print("test2" + "*" * 50)
print(num)
test1()
test2()
print("over")
注意:只是在函式內部定義了乙個區域性變數而已,只是變數名相同 —— 在函式內部不能直接修改全域性變數的值2) 在函式內部修改全域性變數的值
num = 10
def test1():
print("test1" + "*" * 50)
global num
num = 100
print(num)
def test2():
print("test2" + "*" * 50)
print(num)
test1()
test2()
print("over")
3) 全域性變數定義的位置a = 1
def test():
print(a)
print(b)
print(c)
b = 2
test()
c = 3
注意4) 全域性變數命名的建議
gl_num = 33
gl_name = "zfx"
def test():
num = 10
print(num)
print(gl_name)
test()
Python基礎程式設計 二 變數
本篇文章主要是對python學習時的一些總結,作為學習筆記記錄。c users wood python python 3.7.8 tags v3.7.8 4b47a5b6ba,jun 28 2020,08 53 46 msc v.1916 64 bit amd64 on win32 然後就能夠在出現...
Python基礎二(變數 input)
變數 是 為了儲存 程式運算過程中的一些中間 結果,為了方便日後呼叫 官方文件說明如下 variables變數 are used to store儲存 儲存 information資訊 to be referenced被日後呼叫 and manipulated操作或更改 in a computer ...
Python學習筆記 二 變數型別
list 列表 是 python 中使用最頻繁的資料型別。列表可以完成大多數集合類的資料結構實現。它支援字元,數字,字串甚至可以包含列表 所謂巢狀 列表用 標識。是python最通用的復合資料型別。看這段 就明白。列表中的值得分割也可以用到變數 頭下標 尾下標 就可以擷取相應的列表,從左到右索引預設...