1、习题讲解:下面代码会输出什么?
① f(2)
② f(3,[3,2,1])
③ f(3)python
解答:函数
解题思路——range函数spa
python range() 函数可建立一个整数列表,通常用在 for 循环中。对象
格式为:range(start, stop[, step]) 标绿色的部分,能够省略掉。排序
参数说明:generator
def f(x,l=[]) #定义函数;第一个参数是整型,第二个参数是list类型,l的默认值为[]
f(2) 的输出结果是 [0,1]it
f(3,[3,2,1]) 的输出结果是 [3,2,1,0,1,4]io
f(3) 的输出结果是 [0,1,4]匿名函数
2、函数的关键字基础
def 定义函数
return 表明函数执行完返回的值
pass 略过
exit(1) 直接退出
示例:print 与 result 的区别
3、函数的参数
参数 *args 表明tuple类型(即:一个*表明是tuple类型)
参数 **kwargs 表明dict 字典类型(即:两个**表明是dict类型)
4、匿名函数
匿名函数就是没有名字的函数,为何设置匿名函数呢?
lambda 函数是一种快速定义单行的最小函数,能够用在任何须要函数的地方。
例如: def fun(x,y) 等同于 r = lambda x,y:x*y
return x*y
5、高阶函数(用的比较多的是 sorted )
一、map(fun,list)
接收一个函数fun 和一个list,并经过函数 fun 依次做用在list的每一个元素上,获得一个新的list并返回。
map() 函数不改变原有的list,而是返回一个新的list。
由于list能够包含任意类型的元素,所以map函数能够包含任意类型的list,只要fun函数能够处理便可。
Python2 例如:
Python2 结果:
Python3 例如:
Python3 结果:
注意:Python2 与 Python3 在运行map函数时有区别 。
Python2 不须要 list() 转换。Python3 须要list() 转化。
Python3中不进行list转换运行结果为:
二、reduce(fun,list)
接收一个函数fun 和一个 list。可是函数 fun 必须是两个参数,reduce() 对list的每一个元素反复调用函数fun,并返回最终结果。
注意:reduce 函数 存在于Python2的全局变量中。 在Python3中,它被放置于fucntools 模块中。
三、sorted() 函数对全部可迭代的对象进行排序操做,返回从新排序的列表。
sort 是应用在 list 上的方法,sorted 能够对全部可迭代的对象进行排序操做。
list 的 sort 方法返回的是对已经存在的列表进行操做;
内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操做。
3.1 sorted() 函数语法
sorted(iterable, key=None, reverse=False)
3.2 参数说明
iterable -- 可迭代对象。
key -- 用来进行比较的元素,只有一个参数;具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
3.3 示例
①:默认排序为升序
结果
②:降序
结果
③:字典排序
结果:
6、列表生成式
格式:[exp for val n collection if condition]
例如:
结果:
7、生成器:使用了 yield 的函数被称为生成器(generator)
生成器是一个返回迭代器的函数,只能用于迭代操做,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程当中,每次遇到 yield 时函数会暂停并保存当前全部的运行信息,返回 yield 的值, 并在下一次执行 迭代器 next() 方法时从当前位置继续运行。
应用场景:只须要得到 list 中的前几个元素,节省存储空间。
Generator 是一种一边循环一边计算的机制。
示例:
结果: