1实参和形参
# 实参和形参 jack, 18 是实参 name, age 是形参
def test(name, age):
print('年龄:',age)
print('姓名:',name)
test('jack', 18)
'''
年龄: 18
姓名: jack
'''
2位置参数
# 位置参数
def test1(a, b):
print(a, b)
test1(7, 9) # 7 9
test1(9, 7) # 9 7
3默认值参数
# 默认值参数
def test2(name, age=18):
print('姓名:',name)
print('年龄:',age)
test2('mark') # 姓名: mark 年龄: 18
test2('mark', 30) # 姓名: mark 年龄: 30
4关键字参数
# 关键字参数
def test3(a, b ,c):
print(a, b, c)
test3(c=3, b=2, a=1) # 1 2 3
5可变参数
主要有两种表现形式:
*param 可接收多个位置参数收集的实参组成元组
**param 可接收多个关键字参数收集的实参名和值组成一个字典
# 第一种表现形式
def test4(arg, *p):
print(arg)
for num in p:
print("可变参数部分:", num)
# 一个位置参数
print(test4('bob'))
'''
bob
None
'''
# 带两个可变参数
print(test4('bob',18,'杭州'))
'''
bob
可变参数部分: 18
可变参数部分: 杭州
None
'''
# 带三个可变参数
print(test4('bob', 30, '南京', '男'))
'''
bob
可变参数部分: 30
可变参数部分: 南京
可变参数部分: 男
None
'''
# 第二种表现形式
data ={'性别':'男', '爱好':'读书'}
def test5(name, number, **p):
print('名字:',name, '学号:',number, '其他:',p)
test5('张宇', 1001, **data) # 名字: 张宇 学号: 1001 其他: {'性别': '男', '爱好': '读书'}
6组合参数
注意:参数的使用顺序必须是 位置参数,默认值参数,可变参数,关键字参数
def test6(a, b, c=1, *p, **k):
print('a=', a, 'b=', b, 'c=', c, 'p=', p, 'k=', k)
test6(3, 4) # a= 3 b= 4 c= 1 p= () k= {}
test6(3, 4, 5) # a= 3 b= 4 c= 5 p= () k= {}
test6(3, 4, 5, 'A', 'B') # a= 3 b= 4 c= 5 p= ('A', 'B') k= {}
test6(3, 4, 5, 'AB', x=7, y=8) # a= 3 b= 4 c= 5 p= ('AB',) k= {'x': 7, 'y': 8}
7变量的作用域
a = 1 # a是全局变量
def test7():
b = 2 # b是局部变量
print(a, b)
test7() # 1 2
print(a) # 1
print(b) # NameError: name 'b' is not defined
8匿名函数
注意:匿名函数并不是没有名字,而是将函数名作为函数的结果返回
<函数名> = lambda <形式参数列表> : <表达式>
f = lambda x,y : x+y
print(f) # <function <lambda> at 0x000001F44706A488>
print(f(2, 3)) # 5
990

被折叠的 条评论
为什么被折叠?



