python中fac函数_python函数(二)

”,则表示可接受任意个数的参数,这些参数保存在一个元祖中。

#定义函数,代表b是一个元祖,可以接受多个参数

def add(a,*b):

s=a

#用循环迭代元祖b中的对象。

for x in b:

#累加

s+=x

#返回累加的结果。

return s

#调用函数输入两个参数求和,输出结果。

res=add(1,2)

print("两个参数求和结果:",res)

#调用函数输入3个参数求和,输出结果。

res=add(1,2,3)

print("三个参数求和结果:",res)

#调用函数输入5个参数求和,输出结果。

res=add(1,2,3,4,5)

print("五个参数求和结果:",res)

#7.必须通过赋值传递的参数

#python允许使用必须通过赋值传递的参数。

#b是可变参数,则后面跟的参数c在调用传值的时候,必须指明参数名。

def add(a,b,c):

s=a+c

for x in b:

s+=x

return s

#调用函数,形参c未使用赋值传递,则出错。

res=add(1,2,c=3)

print(res)

#正确使用方式,在调用的时候,必须指明参数c.

#另外,带*号的参数也可以省略,代表传递一个空元祖。

res=add(1,c=5)

print(res)

#函数的嵌套定义,python允许在函数内部定义函数。

def add(a,b):

#在函数内部定义的函数,将字符串转换为ASCII求和。

def getSum(x):

s=0

for n in x:

s+=ord(n)

return s

return getSum(a)+getSum(b)

#调用函数,有点类似于递归的意思。

res=add(‘a‘,‘b‘)

print(res)

#lambda函数;表达式函数,用于定义一个匿名函数,可将该函数赋值给变量,通过变量调用。lambda函数定义的基本格式如下:

#Lambda 参数表:表达式

#定义lambda表达式函数,实现两个参数求和的功能,并将该函数赋值给一个变量。

#定义Lambda表达式函数,用于两个参数求和的功能。

#并将该函数赋值给一个变量。

add=lambda a,b:a+b

#使用函数变量进行函数调用,传入两个整数

res=add(1,2)

print(res)

#使用函数变量进行函数调用,传入两个字符串

res=add(‘ab‘,‘cd‘)

print(res)

#lambda函数充分说明了python中的函数名就是一个变量,该变量引用了一个函数对象。

#lambda函数非常适合定义简单的函数,与def不同,lambda的函数只能是一个表达式,可以调用其他的函数

#但不能使用python的其他语句。

#在lambad中调用其他的函数

add=lambda a,b:ord(a)+ord(b)

res=add(‘1‘,‘2‘)

print(res)

#递归函数,递归函数是指在函数体内调用函数本身。例如:fac()

#定义函数:

def fac(n):

if n==0:

#递归函数必须能够终止,即有个边界条件,否则会变成死循环;

return 1

else:

#递归调用函数本身;

return nfac(n-1)

#调用函数;

res=fac(5)

print(res)

#函数列表,python允许将函数作为列表对象,然后通过列表索引来调用函数。

#使用lambda函数建立列表。

d=[lambda a,b:a+b,lambda a,b:ab]

#通过下标,调用列表中的第一个函数;

res=d0

print(res)

#通过下标,调用列表中的第二个函数;

res=d1

print(res)

#也可以使用def定义的函数来创建列表。

#定义求和函数;

def add(a,b):

return a+b

#定义求阶乘函数;

def fac(n):

if n==0:

return 1

else:

return n*fac(n-1)

#建立函数列表;对于d来说,是一个列表,里面装载了两个函数,add、fac;

d=[add,fac]

#调用求和函数;

res=d0

print(res)

#调用求阶乘函数;

res=d1

print(res)

#3.python还允许使用字典来建立函数映射,例如:

#通过字典的方式,建立对上面已经定义好的两个函数的映射。

d={"求和":add,"求阶乘":fac}

#调用求和函数

res=d"求和"

print(res)

#调用求阶乘函数;

res=d"求阶乘"

print(res)

#注意:函数列表的实质就是在元祖、列表和字典等序列中建立函数对象的引用,然后通过所以来调用函数。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值