函数
*必须参数和关键字参数
*必须参数必须义正确的顺序传入,调用的时候必须和声明的时候保持一致
def f(name, age):
print('I am %s , I am %d years old'%(name, age))
f(18, 'eric')
*关键字参数 #使用关键字参数可以允许函数调用时和声明时顺序不一致
python 解释器能够用参数名字匹配参数值
f(age=18, name='eric')
*默认参数 缺省参数没有传入,默认值会生效
.get()
def f(name, age, sex = 'male' ):
print('I am %s , I am %d years old'%(name, age))
print('Sex : %s'%sex)
f(name='李四', age=19)
f('张三', 88, sex='female')
是否显示指定参数, 方便自己阅读为目的
匿名函数
*语法 :
lambda 参数: 表达式
冒号前面是参数,可以有多个
后面的是表达式,只能是一个表达式 不写return 返回值就是表达式的结果
减少代码量, 代码看起来“优雅”
def rect(x, y):
return x * y
area = rect(3, 5)
print(area)
使用lambda表达式
res = lambda x, y: x*y
print(res(4,5))
store = ['33',78]
s = "当当自营" if len(store) == 0 else store[0]
print(s)
def cal(x, y):
if x > y:
return x*y
else:
return x/y
calc = lambda x, y: x*y if x > y else x/y
print('使用lambda: ',calc(5,4))
print('使用lambda: ',calc(2,4))
*排序中使用lambda
stus = [
{'name':'zhangsan', 'age': 33},
{'name':'lisi', 'age': 12},
{'name':'wangwu', 'age':53},
{'name':'zaoliu', 'age': 18},
{'name':'tianqi', 'age': 77}
]
print('排序前',stus)
# key值是按照哪个元素为依据进行排序
res = sorted(stus,key=lambda x: x['age'], reverse=True)
print('排序后',res)
res = sorted(stus,key=lambda x: x['name'])
print('name排序后',res)