python函数(二)

举报
tea_year 发表于 2021/12/29 22:56:46 2021/12/29
【摘要】 #6.传递任意个数的参数;#在定义函数时,若参数名前面使用“*”,则表示可接受任意个数的参数,这些参数保存在一个元祖中。#定义函数,*代表b是一个元祖,可以接受多个参数def add(a,*b): s=a #用循环迭代元祖b中的对象。 for x in b: #累加 s+=x ...

  
  1. #6.传递任意个数的参数;
  2. #在定义函数时,若参数名前面使用“*”,则表示可接受任意个数的参数,这些参数保存在一个元祖中。
  3. #定义函数,*代表b是一个元祖,可以接受多个参数
  4. def add(a,*b):
  5. s=a
  6. #用循环迭代元祖b中的对象。
  7. for x in b:
  8. #累加
  9. s+=x
  10. #返回累加的结果。
  11. return s
  12. #调用函数输入两个参数求和,输出结果。
  13. res=add(1,2)
  14. print("两个参数求和结果:",res)
  15. #调用函数输入3个参数求和,输出结果。
  16. res=add(1,2,3)
  17. print("三个参数求和结果:",res)
  18. #调用函数输入5个参数求和,输出结果。
  19. res=add(1,2,3,4,5)
  20. print("五个参数求和结果:",res)
  21. #7.必须通过赋值传递的参数
  22. #python允许使用必须通过赋值传递的参数。
  23. #*b是可变参数,则后面跟的参数c在调用传值的时候,必须指明参数名。
  24. def add(a,*b,c):
  25. s=a+c
  26. for x in b:
  27. s+=x
  28. return s
  29. #调用函数,形参c未使用赋值传递,则出错。
  30. res=add(1,2,c=3)
  31. print(res)
  32. #正确使用方式,在调用的时候,必须指明参数c.
  33. #另外,带*号的参数也可以省略,代表传递一个空元祖。
  34. res=add(1,c=5)
  35. print(res)
  36. #函数的嵌套定义,python允许在函数内部定义函数。
  37. def add(a,b):
  38. #在函数内部定义的函数,将字符串转换为ASCII求和。
  39. def getSum(x):
  40. s=0
  41. for n in x:
  42. s+=ord(n)
  43. return s
  44. return getSum(a)+getSum(b)
  45. #调用函数,有点类似于递归的意思。
  46. res=add('a','b')
  47. print(res)
  48. #lambda函数;表达式函数,用于定义一个匿名函数,可将该函数赋值给变量,通过变量调用。lambda函数定义的基本格式如下:
  49. #Lambda 参数表:表达式
  50. #定义lambda表达式函数,实现两个参数求和的功能,并将该函数赋值给一个变量。
  51. #定义Lambda表达式函数,用于两个参数求和的功能。
  52. #并将该函数赋值给一个变量。
  53. add=lambda a,b:a+b
  54. #使用函数变量进行函数调用,传入两个整数
  55. res=add(1,2)
  56. print(res)
  57. #使用函数变量进行函数调用,传入两个字符串
  58. res=add('ab','cd')
  59. print(res)
  60. #lambda函数充分说明了python中的函数名就是一个变量,该变量引用了一个函数对象。
  61. #lambda函数非常适合定义简单的函数,与def不同,lambda的函数只能是一个表达式,可以调用其他的函数
  62. #但不能使用python的其他语句。
  63. #在lambad中调用其他的函数
  64. add=lambda a,b:ord(a)+ord(b)
  65. res=add('1','2')
  66. print(res)
  67. #递归函数,递归函数是指在函数体内调用函数本身。例如:fac()
  68. #定义函数:
  69. def fac(n):
  70. if n==0:
  71. #递归函数必须能够终止,即有个边界条件,否则会变成死循环;
  72. return 1
  73. else:
  74. #递归调用函数本身;
  75. return n*fac(n-1)
  76. #调用函数;
  77. res=fac(5)
  78. print(res)
  79. #函数列表,python允许将函数作为列表对象,然后通过列表索引来调用函数。
  80. #使用lambda函数建立列表。
  81. d=[lambda a,b:a+b,lambda a,b:a*b]
  82. #通过下标,调用列表中的第一个函数;
  83. res=d[0](1,3)
  84. print(res)
  85. #通过下标,调用列表中的第二个函数;
  86. res=d[1](2,4)
  87. print(res)
  88. #也可以使用def定义的函数来创建列表。
  89. #定义求和函数;
  90. def add(a,b):
  91. return a+b
  92. #定义求阶乘函数;
  93. def fac(n):
  94. if n==0:
  95. return 1
  96. else:
  97. return n*fac(n-1)
  98. #建立函数列表;对于d来说,是一个列表,里面装载了两个函数,add、fac;
  99. d=[add,fac]
  100. #调用求和函数;
  101. res=d[0](1,5)
  102. print(res)
  103. #调用求阶乘函数;
  104. res=d[1](5)
  105. print(res)
  106. #3.python还允许使用字典来建立函数映射,例如:
  107. #通过字典的方式,建立对上面已经定义好的两个函数的映射。
  108. d={"求和":add,"求阶乘":fac}
  109. #调用求和函数
  110. res=d["求和"](1,5)
  111. print(res)
  112. #调用求阶乘函数;
  113. res=d["求阶乘"](5)
  114. print(res)
  115. #注意:函数列表的实质就是在元祖、列表和字典等序列中建立函数对象的引用,然后通过所以来调用函数。

 

文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/81780790

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。