定义
def printInfo():
print("人生苦短,我用Python")
调用
def printInfo():
print("人生苦短,我用Python")
printInfo()
带参函数
def printInfo(a, b):
print(a + b)
printInfo("人生苦短", "我用Python")
缺省参数函数
# 带有默认值的参数一定要位于参数列表的最后面
def printInfo(a, b="我用Python"):
return a + b;
print(printInfo("人生苦短"))
不定长参数
# 加了星号(*)的变量会存放所有未命名的变量参数,b为元组
def printInfo(a, *b):
print(a)
print(b)
printInfo("人生苦短","我用","Python")
# 人生苦短
# ('我用', 'Python')
printInfo("人生苦短")
# 人生苦短
# ()
# 加**的变量会存放命名参数,即形如key=value的参数, b为字典。
def printInfo(a, **b):
print(a)
print(b)
printInfo("人生苦短", x="我用", y="Python")
# 人生苦短
# {'x': '我用', 'y': 'Python'}
printInfo("人生苦短")
# 人生苦短
# {}
def printInfo(a, *b, **c):
print(a)
print(b)
print(c)
printInfo("人生苦短", 1, "a", x="我用", y="Python")
# 人生苦短
# (1, 'a')
# {'x': '我用', 'y': 'Python'}
printInfo("人生苦短")
# 人生苦短
# ()
# {}
带返回值函数
def printInfo(a, b):
return a + b;
print(printInfo("人生苦短", "我用Python"))
返回多个值函数
# 本质是利用了元组
def printInfo(a, b):
return a, b;
a, b = printInfo("人生苦短", "我用Python")
print(a, b)
函数拆包
def printInfo(a, *b, **c):
print(a)
print(b)
print(c)
a = (1, 'a')
b = {'x': '我用', 'y': 'Python'}
printInfo("人生苦短", a, b)
# 人生苦短
# ((1, 'a'), {'x': '我用', 'y': 'Python'})
# {}
printInfo("人生苦短", *a, **b)
# 人生苦短
# (1, 'a')
# {'x': '我用', 'y': 'Python'}
匿名函数
sum = lambda arg1, arg2: arg1 + arg2
print(sum(10, 20))
#
# 函数作为参数传递
def fun(a, b, opt):
print("a =", a)
print("b =", b)
print("result =", opt(a, b))
fun(1, 2, lambda x, y: x + y)
# a = 1
# b = 2
# result = 3
stus = [
{"name": "zhangsan", "age": 18},
{"name": "lisi", "age": 19},
{"name": "wangwu", "age": 17}
]
stus.sort(key=lambda x: x['age'])
print(stus)
# [{'name': 'wangwu', 'age': 17}, {'name': 'zhangsan', 'age': 18}, {'name': 'lisi', 'age': 19}]