第十九章 函数的高级话题

本文深入探讨了Python函数设计原则,如耦合性和内聚性,并详细介绍了递归函数的用法,包括递归求和、递归与循环的比较,以及如何处理任意结构的数据。同时,讲解了函数对象的属性和注解,以及使用lambda表达式创建匿名函数。此外,还介绍了函数式编程的核心概念,如map、filter和reduce在处理可迭代对象中的应用。
摘要由CSDN通过智能技术生成

函数设计概念

函数设计中的指导方针:

  • 耦合性:在输入时使用参数,输出时使用 return语句;
  • 耦合性:只在真正必要的情况下使用全局变量;
  • 耦合性:不要改变可变类型的参数,除非调用者希望这样做;
  • 内聚性:每一个函数都应该有一个单一的,统一的目标;
  • 携合性:避免直接改变其他模块文件中的变量;

不过通常来讲,我们尽可能地把函数和其他编程组件对外部的依赖性最小化。函数的自包含性越好,它就越容易被理解、复用和修改;

递归函数

python中的递归函数,即直接或间接地调用自身以进行循环的函数;

用递归求和

>>> def mysum(L):
... 	if not L:
...     	return 0
...     else:
...         return L[0] + mysum(L[1:])
... 
>>> mysum([1, 2, 3, 4, 5])
15

直接理解上面的代码可能有些困难,帮助理解我们可以加入打印语句:

>>> def mysum(L):
...     print(L)
...     if not L:
...             return 0
...     else:
...             return L[0] + mysum(L[1:])
... 
>>> mysum([1, 2, 3, 4, 5])
[1, 2, 3, 4, 5]
[2, 3, 4, 5]
[3, 4, 5]
[4, 5]
[5]
[]
15

编码替代方案

我们可以使用python的三元if/else表达式,化简上述代码:

def mysum(<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值