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)