4.1 函数的定义
4.2 函数参数
-
不定长参数:
def func(*args,**kwargs): print(args) print(kwargs)
args: 参数包装成一个元组 kwargs: 参数包装成字典
调用1:func(1,2,3,a=4,b=5,c=6)
调用2:func(*(1,3),**{‘a‘: 4,‘b‘: 5,‘c‘: 6})
-
print (func()): 函数返回值
-
print (func) : 函数本身
?
def func(a,b,c):
? ?print(a)
? ?print(b)
? ?print(c)
my_list=[1,5,2]
func(*my_list)
? ?
4.3 Python中简单内置函数
4.4 Python中高级内置函数
?
my_list=[1,2,6,9,8,7,4,66,55,54,444,]
def sorted_func(data,my_order):
? ?if my_order is True:
? ? ? ?result=sorted(data,reverse=False)
? ? ? ?return result
? ?elif my_order is False:
? ? ? ?result = sorted(data,reverse=True)
? ? ? ?return result
? ?else:
? ? ? ?print(‘youwenti‘)
print(sorted_func(my_list,True))
?
?
4.5 匿名函数
4.6 函数作用域
外部不能访问函数内部变量:
数内部能够访问函数外部变量
函数里面不能修改函数外部变量
4.7嵌套函数 闭包
-
嵌套函数
def func_out(): def func_int(): print(‘nei ‘) return func_int result=func_out() result()
-
闭包:
闭包是函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包。
闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用,闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁
def fx(x): ? ?
? ? x += 1 ? ?
? ? def fy(y): ? ? ? ?
? ? ? ? return x*y ? ?
? ? return fy
?
def func_out(times):
? ?def func_int(num):
? ? ? ?return times*num
? ?return func_int
time_5=func_out(5)
print(time_5(100))
time_8=func_out(8)
print(time_8(100))
?
4.8递归和回调函数 (要有递归的终止条件)
1.递归:
函数自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件
?
def factorial(num):
? if num ==1:
? ? ? return num
? return factorial(num-1)*num
?
print(factorial(6))
2.回调函数:
自身是一个函数,只是被传入到另一个函数当中,供其调用
?
回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定
?
def add (x,y):
? ?return x+y
def multipy(x,y):
? ?return x*y
def use(func,num1,num2):
? ?return func(num1,num2)
a=10
b=20
print(use(add,a,b))
?
4.9 肥波数列
def feib(num):
? a=0
? b=1
? while b <num:
? ? ? print(b)
? ? ? a,b=b,a+b
?
feib(10)
def feib(num):
? if num==1 or num==2:
? ? ? return 1
? return feib(num-1)+feib(num-2)
?
print(feib(5))