Python学习笔记—函数

本文介绍了Python中函数的重要性和使用方法,包括如何创建函数、使用全局变量、匿名函数(lambda)、柯里化技术以及生成器和生成器表达式的概念和应用。
摘要由CSDN通过智能技术生成

        函数是python中最主要也是最重要的代码组织和复用手段。作为最重要的原则,如果你要重复使用相同或非常相似的代码,就需要写一个函数。通过给函数起一个名字,还可以提高代码的可读性。

创建函数

        函数使用def关键字声明,用return关键字返回值:

        函数可以同时拥有多条return,如果到达函数末尾时没有遇到任何一个return语句,则返回None。 函数可以有一些位置参数(positional)和一些关键字参数(keyword)。关键字参数通常用于指定默认值或可选参数。在上面的函数中,x和y是位置参数,而z则是关键字参数。也就是说,该函数可以用这两种方式进行调用:

在函数中使用全局变量

匿名函数 lambda 

        Python支持一种被称为匿名的、或lambda函数。它仅由单条语句组成,该语句的结果就是返回值。它是通过lambda关键字定义的,这个关键字没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”。

假设有一组字符串,你想要根据各字符串不同字母的数量对其进行排序:

 柯里化:部分参数应用

        柯里化(currying)是一个有趣的计算机科学术语,它指的是通过“部分参数应用”(partial argument application)从现有函数派生出新函数的技术。例如,假设我们有一个执行两数相加的简单函数:

        通过这个函数,我们可以派生出一个新的只有一个参数的函数——add_five,它用于对其参数加5: 

        add_numbers的第二个参数称为“柯里化的”(curried)。这里没什么特别花哨的东西,因为我们其实就只是定义了一个可以调用现有函数的新函数而已。内置的functools模块可以用partial函数将此过程简化:

生成器 

        能以一种一致的方式对序列进行迭代(比如列表中的对象或文件中的行)是Python的一个重要特点。这是通过一种叫做迭代器协议(iterator protocol,它是一种使对象可迭代的通用方式)的方式实现的,一个原生的使对象可迭代的方法。比如说,对字典进行迭代可以得到其所有的键:

         当你编写for key in some_dict时,Python解释器首先会尝试从some_dict创建一个迭代器:

        迭代器是一种特殊对象,它可以在诸如for循环之类的上下文中向Python解释器输送对象。大部分能接受列表之类的对象的方法也都可以接受任何可迭代对象。比如min、max、sum等内置方法以及list、tuple等类型构造器:

         生成器(generator)是构造新的可迭代对象的一种简单方式。一般的函数执行之后只会返回单个值,而生成器则是以延迟的方式返回一个值序列,即每返回一个值之后暂停,直到下一个值被请求时再继续。要创建一个生成器,只需将函数中的return替换为yeild即可:

        调用该生成器时,没有任何代码会被立即执行:

        直到你从该生成器中请求元素时,它才会开始执行其代码:

生成器表达式

         另一种更简洁的构造生成器的方法是使用生成器表达式(generator expression)。这是一种类似于列表、字典、集合推导式的生成器。其创建方式为,把列表推导式两端的方括号改成圆括号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值