函数传递
#*score是一个元组,说明可能有很多门成绩
def avg(*scores):
return sum(scores)/len(scores)
result= avg(98.2,88.1,70,65)
print(result)
emp={
'name':'TOM',
'age':22,
'job':'dev'
}
def display(**employee):
#*emplyee表示传递一个元组,**employee表示传递一个字典表
print(employee)
display(name='TOM',age=22,job='dev')
def fun(a,b,*args,**kwargs):
#*arges仅传值,**kwargs是值和类别都传递
Lambda表达式
f= lambda name:print('hello',name)
#定义了一个函数,并接收了一个参数叫name,并在打印的时候把name加上了
f('tom')
def hello_chinese(name):
print('您好',name)
def hello_english(name):
print('hello',name)
def hello_japanese(name):
print('扩你急哇',name)
while True:
name=input('请输入姓名:\n')
if name == 'stop':
break
language =input('请选择版本语言:\n c=> 中文版\n e=> 英文版\n j =>日本版\n r=> 俄文版\n')
f= lambda name: print('npbet',name)
if language == 'c':
hello_chinese(name)
elif language == 'e':
hello_english(name)
elif language == 'j':
hello_japanese(name)
elif language =='r':
f(name)
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('npbet',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)
#get是指引用了以上函数,并未执行;若要执行,需加上参数(name),hello_chinese是指万一写错了就默认中文版
map函数
l=list(range(1,21))
result =[]
def add_number(x):
return x+5
#1.使用循环
for x in l:
result.append(x+5)
#2.使用推导
result=[x+5 for x in l ]
print(result)
#3.map()
result =list(map(add_number,l))
#将l里的每个参数都传递给add_number里进行操作,并在放到一个新的列表里
#3.map()
result =list(map((lambda n:n**2),1))
filter函数
l= list(range(1,11))
#判断是否为偶数
def even_number(x):
return x%2 == 0
res= filter(even_number,l)
#从l里选出符合even_number符合条件的放到res列表里