pyhton 函数参数,递归函数,高阶函数(一点点笔记)

'''def test(x,y):
print(x)
print(y)
test(2,y=3)
def test(*args):#参数可以是不确定的多个数,接受N个位置参数,转换成元组形式
print(args)
test(1,2,2,3,3,4)

def test(x,*args):#参数可以是不确定的多个数
print(x,args)
test(1,2,2,3,3,4)

def test1(**kwargs):#将N个关键字参数转换成字典的方式
print(kwargs)
test1(name ='aa',age =9,sex ='f')
test1(**{'name':'aaa','age':'12'})

def test1(name,**kwargs):#将N个关键字参数转换成字典的方式
print(name)
print(kwargs)
test1(name ='aa',age='44')
'''
def test1(name,*args,**kwargs):
print(name)
print(args)
print(kwargs)
test1(name ='aa',age='44')
'''
aa
()
{'age': '44'}'''
#递归:1.必须有一个明确的结束条件
# 2.每次进入更深一层递归时,问题规模比上次递归都应有所减少
# 3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)
# 这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,
# 栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
def calc(n):
print(n)
if int(n/2) == 0:
return n
return calc(int(n/2))

calc(10)
#匿名函数:不需要显示的函数
#函数式编程:指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,
# 不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,
# 调用几次,值都是不变的。(不复杂的逻辑运算,输入确定,输出就是确定的。)

#高阶函数:变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数
def add(x,y,f):
return f(x)+f(y)
res =add(3,-6,abs)
print(res)
 
posted @   三水淼  阅读(191)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示