def 函数名([输入参数]):
函数体
[return xxx]
def calc(a, b): # a,b为形式参数(形参),形参的位置在函数的定义处
print('a=',a)
print('b=',b)
c = a + b
return c
ans = calc(10, 20) # 10,20为实际参数的值(实参),实参的位置就是函数的调用处
print(ans)
res = calc(b = 13, a = 15) # 左侧的变量名为关键字参数
print(res)
'''
a= 10
b= 20
30
a= 15
b= 13
28
'''
def fun(arg1, arg2):
print('arg1', arg1) # arg1 11
print('arg2', arg2) # arg2 [22, 33, 44]
arg1 = 100
arg2.append(10)
print('arg1', arg1) # arg1 100
print('arg2', arg2) # arg2 [22, 33, 44, 10]
n1 = 11
n2 = [22, 33, 44]
print('n1', n1) # n1 11
print('n2', n2) # n2 [22, 33, 44]
fun(n1, n2)
print('n1', n1) # n1 11
print('n2', n2) # n2 [22, 33, 44, 10]
def fun1():
print("world")
fun1() # world
def fun2():
return 'hello'
print(fun2()) # hello
def fun3():
return 'hello', 'world'
print(fun3()) # ('hello', 'world')
def fun(a, b = 10): # b成为默认参数
print(a, b)
fun(100) # 100 10
fun(20, 30) # 20 30
def fun(*args): # 函数定义时,可变的位置参数
print(args)
fun(10) # (10,)
fun(10,20) # (10, 20)
def fun(**args): # 函数定义时,可变的位置参数
print(args)
fun(a = 10) # {'a': 10}
fun(a = 10,b = 20, c = 30) # {'a': 10, 'b': 20, 'c': 30}
'''
def fun1(*args, *a):
pass
以上代码,程序会报错,可变的位置参数,只能是1个
'''
'''
def fun2(**args, **a):
pass
以上代码,程序会报错,个数可变的关键字参数,只能是1个
'''
def fun3(*args1, **args2):
pass
'''
def fun4(**args1, *args2):
pass
在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
要求:个数可变的位置形参,放在个数可变的关键字形参之前
'''
| 序号 | 参数的类型 | 函数的定义 | 函数的调用 | 备注 |
| 1 | 位置参数 | √ | ||
| 将序列中的每个元素都转换为位置参数 | √ | 使用* | ||
| 2 | 关键字实参 | √ | ||
| 将字典中的每个键值对都转换为关键字实参 | √ | 使用** | ||
| 3 | 默认值参数 | √ | ||
| 4 | 关键字形参 | √ | 使用* | |
| 5 | 个数可变的位置形参 | √ | 使用* | |
| 6 | 个数可变的关键字形参 | √ | 使用** |