创建函数
创建函数用关键字def: return 返回,返回可有可无,参数可有可无
# 有返回值,有参数
>>> def add_fun(a, b):
return (a + b)
>>> sum1 = add_fun(1, 2)
>>> sum1
3
# 无返回值,无参数
>>> def add_fun2():
print (12)
>>> add_fun2()
12
函数的参数
(一)关键字参数
关键字参数就是,在传入参数的时候,将传入的实参。指定赋值给形参变量名:
def fun1_1(a, b):
print(f'a = {a}')
print(f'b = {b}')
fun1_1(b='1234', a='5678')
### 输出结果 ###
a = 5678
b = 1234
(二) 默认参数
在使用的时候,如果该参数不输入,则使用默认值。
def fun1_2(a='12345', b='67890'):
print(f'a={a}')
print(f'b={b}')
fun1_2()
### 输出结果 ###
a=12345
b=67890
(三)收集参数
常用场景,如果在定义函数的时候,不知道需要多少参数,也可以使用收集参数,其实也叫可变参数。使用时,需要在参数面前加*号
def fun1_3(*params):
print(f'params = {params}')
print(f'len(params) = {len(params)}')
print(f'params[1] = {params[1]}')
fun1_3('a', 'b')
### 输出结果 ###
params = ('a', 'b')
len(params) = 2
params[1] = b
* 号表示解包的意思,
list1 = ['a', 'b']
fun1_3(*list1)
### 输出结果 ###
params = ('a', 'b')
len(params) = 2
params[1] = b
,因此以上示例中:收集参数可以这样理解:
*params = *list1
params = list1
结合C语言:指针的定义* :可以理解为,params 为指向一个地址,即为指针,输入的形参,应该就是一维数组形式的(‘a’, ‘b’)或者列表
(四)字典参数
使用场景同收集参数,输入的实参为字典形式,或者key=value形式输入的
def fun1_4(**params):
print(f'params = {params}')
print(f'len(params) = {len(params)}')
fun1_4(a=1, b=2)
### 输出结果 ###
params = {'a': 1, 'b': 2}
len(params) = 2
dict1 = {'a':1, 'b':2}
fun1_4(**dict1)
### 输出结果 ###
params = {'a': 1, 'b': 2}
len(params) = 2