# 1.函式的作用域 # 全域變數的作用域: # 一般在函式體外定義的變數成為全域變數,在函式內部定義的變數稱為區域變數, # 全域變數所有作用域都可用,區域變數只能在本函式可用,變 # 量的使用順序是,區域變數 > 全域變數, 也就是說:優先使用區域變數 # # global關鍵字: # 為了解決函式內使用全域變數的問題, # python增加了global關鍵字,利用它的特性,可以指定變數的作用域, print('1.函式的作用域') # 在函式外面定義變數 可以在函式里面被呼叫, # 但是只有可變型別物件可以進行操作,不可變型別物件不可操作 a = 1 # 全域變數 def func(): global a # 宣告變數為全域變數 a = 100 print(a) func() # 若沒有呼叫這個函式,則下一行輸出1 print(a) # 輸出100,因為這時a是全域變數

# 2.多函式執行流程 print() print('2.多函式執行流程') b = 1 def test_b(): global b b = 20 def test_c(): print(b) test_b() # 執行完后,b為全域變數,值為20 test_c() # 輸出20

# 3.函式的回傳值 print() print('3.函式的回傳值') def func1(a, b): return a+1, b+3 # 如果回傳多個引數,會按順序存放到元組中 # 如果回傳值是一個,則接收引數為1個 # 如果回傳值是多個,則接收引數為一個(元組)或者回傳的個數(解包) print(func1(1, 2)) # 輸出(2, 5) print(type(func1(1, 2))) # tuple型別 print(func1(1, 2)[0]) # 輸出元組(2, 5)的索引為0的值 data1, data2 = func1(1, 2) # 解包(拆包) print(data1, data2)

# 4.交換值 print() print('4.交換值') x = 1 y = 2 print(x, y) x, y = y, x # 交換值 print(x, y) # 5.可變型別和不可變型別 # 可變型別 串列 字典 集合 # 不可變型別 數字 字串 元組 布爾

# 6.引數 print() print('6.引數') def func4(name, age, gender): print(f'我的姓名{name},\ 我的年齡{age},我的性別:{gender}') func4('小明', 20, '女') # 要注意順序 # 6.1 關鍵字傳參 # 很安全 # 不必考慮順序 func4(age=20, name='小放', gender='man') # 6.2 默認引數 def func5(name, age=20, gender='男'): print(f'我的姓名{name},\ 我的年齡{age},我的性別:{gender}') func5(age=20, name='小放', gender='女') # 輸出的gender是女,而不是男 # 當呼叫函式的引數有值,則默認引數的值被替換 # 6.3 不定長傳參 # *args arguments # **kwargs # 這個名字可以改的,但是一般不改 # 例如:*args == *abv # **kwargs == **qqq # *args 把沒有形參的實參進行打包,放到一個元組中 def fun(data1, data2, *args): print(data1, data2, args) print(args[0]) fun(1, 2, '3', 4) # 輸出 1 2 ('3', 4) # **kwargs # 把沒有形參的實參進行打包,但是只打包關鍵字引數 # 字典 key word arguments def fun1(**kwargs): print(kwargs) # 輸出字典 fun1(name='小明', age=20, gender='女')

# 今日練習 ''' 定義一個模擬ATM機操作的場景 (1)需要一個存錢和取錢的函式 (2)設定全域默認資金1000 (3)呼叫存錢函式,存放800元,并將操作后函式將余額列印出來 (4)呼叫取錢函式,取錢500元,并將操作后函式將余額列印出來 ''' print() print('今日練習') money = 1000 def cunfang_money(): # 定義存錢函式 global money # 宣告變數為全域變數 money -= 800 # 存放800元 print(money) def quchu_money(): global money # 若不再次宣告為全域變數,則在函式內為區域變數 money += 500 print(money) cunfang_money() quchu_money()

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536856.html
標籤:其他
