python之函数

一般的函数:

 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)

 

posted @ 2018-08-16 22:11  松江小旋风  阅读(181)  评论(0)    收藏  举报