python哪些不需要縮進?
全局變量:指在函數之外定義的變量,一般沒有縮進,在程序執行的全過程有效
局部變量:指在函數內部使用的變量,僅在函數內部有效,當函數退出時變量將不存在
例1:
n = 1 # 全局變量
def func(a, b):
c = a * b # c是局部變量,a和b作為函數參數也是局部變量
return c
s = func("knock~", 2)
print(s)
print(c)
![]()
這個例子說明,當函數執行完退出后,其內部變量將被釋放。
如果函數內部使用了全局變量呢?例如:
n=1 #n是全局變量
def func(a,b):
n=b #這個n是在函數內存中新生成的局部變量,不是全局變量
return a*b
s=func("knock~",2)
print(s,n) #測試一下n值是否發生改變knock~knock~ 1
![]()
函數func()內部使用了變量n,并且將變量參數b賦值給變量n,為何n值沒有改變?
因為函數func()有自己的內存空間,它將n=b語句理解為生成一個局部變量n,并將參數b賦值給它,此時func()函數沒有將n當作全局變量。所以,函數退出后,局部變量n被釋放,全局變量n的值沒有改變。
如果希望讓func()函數將n當作全局變量,需要在變量n使用前顯式說明該變量未全局變量,修改后:
n = 1 # n是全局變量
def func(a,b):
global n
n = b # 這個n是在函數內存中新生成的局部變量,不是全局變量
return a*b
s = func("knock~",2)
print(s, n) # 測試一下n值是否發生改變knock~knock~ 1
![]()