匿名函数,lambda函数
a = lambda x,y:x+y
print(a(1,2))
b = map(a,(1,),(2,))
print(list(b))
map()函数在python3中返回一个迭代器,需要用list方法才能取出值
函数中带有默认参数时,不填写则拥有默认参数,关键参数必须放在位置参数后面
def func(name,age,country = 'CN'):
print("name",name)
print("age",age)
print("country",country)
可变参数
def a(name,age,*args):
print(name,age,args)
def b(name,age,*args,**kwargs)
print(name,age,args,kwargs)
全局变量使用
name = '夜爷爷'
def change_name(name):
print("before name",name)
name = '炫酷boy'
print("after name",name)
change_name('小李')
嵌套函数
def b():
print("haha")
def a():
b()
a()
#简单的嵌套函数
高阶函数
def add(x,y,f):
return f(x)+f(y)
re = add(3,4,abs)
print(re)
递归特性:
- 必须有一个明确的结束条件
- 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
- 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢
def cal(n):
print(n)
if int(n/2) ==0:
return n
return cal(int(n/2))
def jiecheng(n):
if n == 1:
return n
return n*jiecheng(n-1)
print(jiecheng(5))
递归实现斐波那契数
def fib(n):
if n == 1 or n==0:
return 1
if n == 2:
return 2
if n>2:
return fib(n-2)+fib(n-1)
for i in range(20):
print(fib(i))
原文地址:https://www.cnblogs.com/yeyeyeyey/p/12095685.html
时间: 2024-10-11 18:33:44