一般的函数:
1 # Author:yebo
2
3 #函数:
4 def func1():
5 """testing 1"""
6 print("in the func1")
7 return 0
8
9 #过程:
10 def func2():
11 """testing 2"""
12 print("in the func2") #在python中:过程就是没有返回值的函数
13
14 x = func1()
15 y = func2()
16
17 print("from func1 return is %s" %x)
18 print("from func2 return is %s" %y)
*args和 **kwargs:
1 # Author:yebo
2
3 def func(arg1, arg2, arg3, *args, **kwargs): # *args把多的变成tuple,**kwargs则是转成dict
4 print(arg1, arg2, arg3, args, kwargs) #注意print和def中有无*的区别
5
6 func(3,4,5,6,7,8,9,10 ,11,12,13,14,15,16,name = 'yebo',age = 21)
全局变量与局部变量:
1 # Author:yebo
2
3 school_name = "zhounan"
4 names = ["yebo", "shuzzz", "yomi"]
5
6 def change_name():
7 school_name = "sues"
8 names[2] = "baby7"
9 print(school_name)
10
11 change_name() #局部变量
12 print(school_name) #全局变量
13 print(names) #全局变量如果是列表字典这类复杂形势,函数中则可以改动
递归:
1 # Author:yebo
2
3 def calc(n):
4 print(n)
5 if int(n/2) > 0:
6 return calc(int(n/2))
7 print("--->",n)
8
9 calc(10)
匿名函数:
1 # Author:yebo
2
3 calc = lambda x:x*3
4
5 print(calc(3))
高阶函数:
1 # Author:yebo
2
3 import time
4
5 def time_calc(func):
6 start_time = time.time()
7 func()
8 stop_time = time.time()
9 print("The run time is %s" % (stop_time - start_time))
10
11 def bar():
12 time.sleep(3)
13
14 time_calc(bar)