1. 怎么定義函數 ?
def 是定義函數的一個關鍵字,后面跟的是方法名稱【可自行更改】
1 def user_name(): 2 print()
2. 調用函數
1 def function_params(x, y): 2 print(x + y) 3 function_params(1, 2)
##################################### 4 def function_params1(x, y=1, z=2): 5 print(x + y + z) 6 function_params1(1, 2, 3)
##################################### 7 def function_params1(x, y=1, z=2): 8 print(x + y + z) 9 function_params1(x=1, z=2)
##################################### 10 def function_params2(*args): 11 for i in args: 12 print(i) 13 function_params2("1", "2", "3") 14 function_params2(["1", "2", "3"], ["1", "2", "3"], ["1", "2", "3"], ["1", "2", "3"])
3. 函數嵌套
1 def function_out(): 2 print("out") 3 def function_inner():# 嵌套進out中的一個函數 4 print("inner") 5 function_inner()# 在函數中調用內部函數,一定要調用才能執行 6 function_other()# 函數內部調用其他函數,直接也觸發這個其他的函數 7 def function_other(): 8 print("other") 9 function_out()# 盡可能的把調用往后去寫,確保所有的全局的方法、變量都已經被加載#調用的一定是一個在全局中聲明過的函數,如果是在局部聲明的,在全局中是無法被調用
4. 函數遞歸
1 num = 15 2 def function_clac1(num): 3 print(num) 4 if int(num / 2) == 0: 5 return 6 function_clac1(int(num / 2)) 7 function_clac1(16)
備注:
1. 自己調用自己,容易出現問題:死循環
2. 每個遞歸程序之中,一定要有一個結束邏輯
3. 跳出的時候需要用return,不能用break, break是循環中使用的,而return是方法中返回結果,返回結果代表了方法結束
5. 作用域
1 # 變量的作用域, 全局變量 可以影響到 方法內部(局部變量) ,局部的變量不可以去全局使用 2 fa = 2 3 # 如何在內部影響到全局 4 def function_area(): 5 # 將fa 聲明為一個全局的變量 ,global關鍵字 6 global fa 7 # 已經改為全局的變量了,修改值的時候會修改全局的值 8 fa = 1 9 print(fa) 10 # 方法一定得被調用才能生效 11 function_area() 12 print(fa)
