函数中参数的匹配
1.不做特殊处理时,按位置匹配。调用函数时输入关键字,也可按照关键字进行匹配。
def function(a,b,c)
print(a,b,c)
func(1,2,3)
func('a','b','c')
func([1,2,3],(5,6),{'a':1,'b':2}) //实参可以各种数据类型
func(c=1,a=2,b=3) //按照关键字匹配参数
2.默认值的设置
def function(a,b=2,c=3)
print(a,b,c)
func(1) //打印 1 2 3
3.*.args:任意数量参数
**.kwargs:以键值对的方式传递参数
计算平均分的函数
def avg(*scores):
return sum(scores)/len(scores)
result=avg(88,89,90) //可以接受任意数量的参数序列
scores=(88,89,90)
result=avg(*scores) //需要把元组解开再将数据传递给函数
def display(**employee)
print(employee)
display(name='tom',age=22,job='dev') //以键值对的方式传递函数
emp={'name':'tom','age'=22,'job'='dev')
display(**emp) //把字典表解开再传递给函数
lambda表达式
作用:定义匿名函数
基本格式:lambda 参数…:函数
def hello(name):
print(name)
f=lambda name:print(name)
f('tom') //与上面函数实现相同的作用
python中委托的用法
def hello_chinese(name):
print('您好',name)
def hello_english(name):
print('Hello',name)
hello=hello_chinese //改变此处可改变调用的函数,方便后面程序
hello()
函数应用
def hello_chinese(name):
print('您好',name)
def hello_english(name):
print('Hello',name)
def hello_japanese(name)
print('こんにちは',name)
operation={
'e':hello_english
'c':hello_chinese
'j':hello_japanese
'r':lambda name:print('привет',name)
while True
name=input('请输入姓名\n')
if name == 'stop':
break
language=input('请选择语言版本:\n c=>中文版\n e=>英文版\n j=>日文版\n r=>俄文版\n')
operation.get(language,hello_chinese)(name)
函数的高级工具
1.用法:map(函数,可迭代对象)
l=list(range(1,21))
result=[]
#1.使用循环
for n in l
result.append(n+5)
#2.使用推导
result=[x+5 for x in l]
#3.使用map()
def add_number(x)
return x + 5
res=list(map(add_number,l)) //map()返回map类型,需要将起转为列表
2.用法:filter(函数,可迭代对象)
l=list(range(1,11))
def ever_number(x):
return x%2 == 0
res=list(filter(even_number,l))