def 函数名(参数1,参数2...):
代码块(函数要实现的功能)
return 返回值
#其中,函数的参数和返回值不是必须要写的,如果一个函数没有reutrn语句(也就是没有返回值),它实际上有一个隐式return语句,返回值为None,类型为'NoneType'。
def PR():
print("===================")
print("人生苦短,我学Python")
print("===================")
import sys
sys.path #查看Python的搜索路径
按照位置传参,位置参数
如果调用的时候为参数指定值,则指定值覆盖默认值,按照指定值进行计算
函数调用阶段按照形参名赋值的实参
注意:当位置参数和关键字参数混用,位置参数在前,关键字参数在后
就是说只指定一个参数,然后允许调用函数时传入任意数量的参数。
Lambda函数是自定义函数的一种,专指用关键字” lambda”定义的无名短函数。
a = lambda x,y,z: x+y+z
a(1,2,3)
#out:6
ilter()过滤后,返回的是结果为真(即不等于0)的对象
'''
filter函数:
- filter()有两个参数。第一个参数可以是一个函数,也可以是一个None。
- 如果是第一个参数是函数的话,则将第二个迭代数据里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;
- 如果第一个参数为None,则直接将第二个参数中为True的值筛选出来。
ilter()过滤后,返回的是结果为真(即不等于0)的对象
'''
temp = filter(None,[1,2,0,False,True])
list(temp) #filter保留结果为真的原数据,筛除结果为假的原数据
#[1, 2, True]
案例:
#写一个筛选奇数的过滤器
def is_odd(n):
return n%2
list(filter(is_odd,range(10)))
#使用lambda简化上述函数
list(filter(lambda n:n%2,range(10)))
map()遍历,返回的是计算结果
'''
map:映射
map()也有两个参数,仍然一个是函数,一个是可迭代序列,将序列的每一个个元素作为函数的参数进行运算加工,直到可迭代序列每个元素加工完毕,返回所有加工后的元素构成的新序列。
map()遍历,返回的是计算结果
'''
[*map(lambda x:x%2,range(10))]
#out: [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
函数自己调用自己,注意递归停止条件
#累加
def add_sum(n):
if n == 1:
return 1
else:
return n+add_sum(n-1)
add_sum(10)
#out: 55
可以直接用函数名调用
int() , bool() , float() , str() , list() , set() , tuple() ,dict() ,type()
如果bool(x)对于可迭代的所有值x为True,则返回True。如果iterable为空,则返回True
如果bool(x)对于可迭代的任何x为True,则返回True。如果iterable为空,则返回False。
求和:sum()
求绝对值:abs()
求最小值:min()
求最大值:max()
求长度:len()
生成随机数:range(),
求m的n次幂:pow(m,n)
四舍五入:round()【*.5的时候,返回距离原数据最近的偶数,精度可以取负值:round(156.433,-1)】
求商和余数: divmod()
zip函数:将等长的列表或元组组合成字典
通过模块名进行调用,如math.sin()等 (前提是先导入(import)第三方模块)