版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mikkles/article/details/81106628
函数基础
不定长传参
不定长传参数 args *kawargs
def print_me(arg1,*args):#*args为不定长参数,其中的args看为元组,kwargs字典
print(arg1)
for arg in args:
print("*args: ",arg)
print_me(10)
print_me(70,60,50)
#70
#*args:60
#*args:50
data=(60,50)
print_me(70,*data)
#70
#*args:60
#*args:50
可变对象与不可变对象
- Python中,一切皆是对象
- 可变对象:定义以后可改变
- 列表 list
- 字典 dict
- 不可变对象:定义后不能修改,但是可以覆盖
- 数值型:整型int,浮点型float……
- 字符串:str
- 元组:tuple
- 空:None
默认参数必须指向不可变对象
def func(num=None):
if num is None:
num=[]
num.append(0)
return num
作用域
变量类型 | 作用域 | 访问权限 |
---|---|---|
局部变量 | 函数内部 | 被声明的函数内访问 |
全局变量 | 函数外部 | 整个程序范围内访问 |
全局变量和局部变量最好不重名
- 匿名函数lambda
- 定义函数执行的行为/效果
- 函数名=lambda 参数列表:表达式
map/reduce
map(函数,序列) [对序列中的元素执行函数操作]
data=["abx\n","xyz\n"] clean_data=map(lambda x: x[:-1],data) print(list(clean_data))
reduce(函数,序列)#迭代运算
from functools import reduce result=reduce(lambda x,y: x+y,[47,11,42,13]) print(list(result))
filter(函数,序列)
- 返回序列中使得函数成立的元素,并组成新的序列