2020/07/28
Python_03序列、函数笔记
序列
1、序列定义
列表、元组和字符串统称为序列
㈠列表、元组和字符串的共同点
⑴都可以通过索引得到每一个元素
⑵默认索引值总是从0开始
⑶可以通过分片的方法得到一个范围内的元素的集合
⑷有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)
2、序列常见的BIF
㈠list()
把一个可迭代对象转换为列表
原理:
先新建一个列表,通过循环,每次循环通过索引,每次索引的值插入到列表里面,迭代完成循环结束,返回列表的值
㈡tuple([iterable])
把一个可迭代对象转换成元组
和list()差不多
㈢str(obj)
把obj对象转换为字符串
和int()、floct()方法一样
㈣len(sub)
返回sub的长度
㈤max()
返回序列或者参数集合中的最大值
㈥min()
返回序列或者参数集合中的最小值
同max()方法
㈦sum(iterable[, start=0])
返回序列iterable和可选参数start的总和
㈧sorted()
排序,默认是从小到大排,使用方法和list.sort()方法一样
㈨reversed()
返回的是迭代器对象,可以用list方法
list(reversed(numbers))
㈩enumerate()
枚举,
(十一)zip
返回由各个序列组成的元组
函数
3、创建函数
用关键字 def 创建
格式:
def 函数名():
函数体
4、函数的参数
⑴形参和实参的定义
略
⑵函数文档
功能和注释一样,不会被打印出来;
⑶关键字参数
⑷默认参数
是定义了默认值的参数
⑸收集参数
在参数前面加* ,这是传多少个参数都可以
建议:
有收集参数,其他参数设置成默认参数,或者将收集参数写在最后
5、函数与过程
Python只有函数没有过程
6、函数返回值
7、内嵌函数和闭包
㈠内嵌函数
㈡闭包
如果在一个内部函数里对外部作用域(但不是在全局作用域的变量进行引用)那么内部函数就会被认为是闭包
(★简单理解就是闭包就是一个要引用外部函数的变量的内部函数)
注意:
8、lambda表达式 ( 匿名函数)
lambda语句:
lambda x : 2 * x + 1
语法:
x为原函数的参数,在冒号的后面是原函数的返回值;
lambda语句返回函数对象,使用时只需要简单的赋值就可以了(lambda x : 2 * x + 1是匿名函数,没有名字,给个名字赋值就可以了)
多个参数时
9、lambda表达式的作用
⑴Python写一些执行脚本时,使用lambda就可以省下定义函数过程,比如说我们只是需要写个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
⑵对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了。
⑶简化代码的可读性,由于普通的函数阅读经常要跳到开头def定义部分,使用lambda函数可以省去这样的步骤。
10、两个比较实用的内置函数
㈠filter()函数
过滤器
filter有两个参数,第一个参数可以时一个函数也可以是空,第二个参数是可迭代的数据;如果第一个是函数的话则将第二个可迭代数里的每一个数据作为函数的参数进行计算,把返回True的值筛选出来并且生成一个列表;如果第一个参数为None则将第二个迭代数里的True的值筛选出来
一句话理解:
filter(x,y),filter筛选的对象是y,筛选的条件是x
㈡map()
功能:
将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列的每一个元素都加工完毕,返回所有加工后的元素构成的新序列