python3初识 之 函数

函数:
特性:1.减少重复代码
2.增加可扩展性
3.易维护
 1 def func():#函数定义
 2     print('hello world')
 3     return 0#返回值
 4 func()#函数调用
 5 
 6 def func_1(x,y):#形参
 7     print(x)
 8     print(y)
 9 func_1(1,2)#实参
10 
11 #默认参数:
12 def func_2(x,y=2):
13     print(x)
14     print(y)
15 func_2(1)
16 
17 #关键字参数:关键参数必须放在位置参数之后。
18 def func_3(x,y):
19     print(x)
20     print(y)
21 func_2(y=1,x=2)
22 
23 #非固定参数
24 def func_4(x,*args): # *args 会把多传入的位置参数变成一个元组形式
25     print(x)
26     print(args)
27 func_4(1,2,4,3,5)
28 def func_5(x,**kwargs): # *kwargs 会把多传入的关键字参数变成一个dict形式
29     print(x)
30     print(kwargs)
31 func_5(1,name = 'sugar',age = '18')
 
 1 # 局部变量---->全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序
 2 def func_6(name):
 3     print('before:',name)
 4     name = 2000
 5     print('after:', name)
 6 name = 1000
 7 func_6(name)
 8 print(name)#输出1000
 9 
10 # 全局变量,当全局变量与局部变量同名时:
11 # 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
12 name = 888
13 age = 9
14 def func_7(name):
15     global age#声明全局变量,注意:能用,但千万不要用!!!!!!
16     age = 10
17     print('before:',name)
18     name = 2000
19     print('after:', name)
20 func_7(name)
21 print(name,age)#888 10
22 
23 name = ['ig','rng','edg']#除整数和字符串以外,列表,字典,类等都可以改
24 def func_8(name):
25     print(name)
26     name[0] = 'wxz'
27     print(name)
28 func_8(name)
29 print(name)#output:['wxz', 'rng', 'edg']

返回值:

要想获取函数的执行结果,就可以用return语句把结果返回
注意:
函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
如果未在函数中指定return,那这个函数的返回值为None
递归函数:
 1 #递归:在函数内部调用自身
 2 def calc(n):
 3     print(n)
 4     if int (n/2) > 0:
 5         return calc(int (n/2))
 6 calc(10)
 7 
 8 #output:
 9 10
10 5
11 2
12 1
13 递归特性:
14 1. 必须有一个明确的结束条件
15 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
16 3. 递归效率不高

高阶函数:

1 #高阶函数:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数
2 def add(x,y,f):
3     return f(x)+f(y)
4 x = add(-1,-2,abs)#abs为绝对值函数
5 print(x)#output:3
 
 

猜你喜欢

转载自www.cnblogs.com/sugar2019/p/10292122.html