Python函数的目的是降低编程难度、增加代码复用。
介绍
格式定义:
def 函数名(参数1, 参数2):
实现语句
实现语句
return ...
说明:
- 函数名其实就是一个函数对象的引用,可以赋值给其他变量,等于起个别名
- 参数:
*args
是可变参数
,args 接收的是一个 tuple
**kwargs
是关键字参数
,kwargs 接收的是一个 dict
- 返回值
- 函数没有
return
时,自动 return None
。return None
可以简写成 return
- 返回多个值其实就是返回了一个
tuple
内建函数
len
函数返回序列中所包含元素的数量
min
和 max
函数返回序列中的最小值和最大值
- python内建了
map()
,reduce()
,filter()
函数。这些函数接受两个参数,一个是函数,一个是序列。
map(lambda x: x ** 2, [1, 2, 3, 4, 5])
返回结果为:
[1, 4, 9, 16, 25]
reduce
函数会对参数序列中元素进行累积,py3以后使用,必须导入 from functools import reduce
def myadd(x,y):
return x+y
sum=reduce(myadd,(1,2,3,4,5,6,7))
print(sum) # 结果就是输出1+2+3+4+5+6+7的结果即28
def is_even(x):
return x & 1 != 0
filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
# 返回结果为:
[1, 3, 5, 7, 9]
- Python 内置的
sorted()
可以对 list
进行排序
内名函数
lambda关键字表示匿名函数,例如:
f = lambda x: x * x
匿名函数有个限制:只能有一个表达式,不用写return,返回值就是结果。
函数 vs generator
Generator
是边用边生成,而不是一次性生成。下面示例中,a就是一个 generator,和 [x * x for x in range(5)]
不同:
a = (x * x for x in range(5))