赞
踩
函数是组织好的,可重复使用的,用来实现特定功能的代码段。
# 定义函数
def add(x, y):
result = x + y
print("{} + {}的结果是:{}".format(x, y, result))
# 调用函数
add(1, 2)
函数定义
中,提供的x
和y
,称之为形式参数
(形参)调用函数
中,提供的1
和2
,称之为实际参数
(实参)定义:调用函数时根据函数定义的参数位置来传递参数
def my_fun(name, gender, age):
print(f'我叫{name}, 性别{gender}, 今年{age}岁.')
# 位置参数
my_fun('猪小明', '男', 30)
输出结果如下:
我叫猪小明, 性别男, 今年30岁.
注意:传递的参数和定义的参数顺利及个数
必须一致
定义:函数调用时通过"键=值"键值对的形式传递参数,可以让函数更加清晰、容易使用,同时也不用遵循形参的顺序。
def my_fun(name, gender, age):
print(f'我叫{name}, 性别{gender}, 今年{age}岁.')
# 关键字传参
my_fun(name='猪小明', gender='男', age=30)
# 可以不按照形参的固定位置传参
my_fun(name='猪小明', age=30, gender='男')
# 可以和位置参数混用,但是位置参数必须在前面,且匹配参数的顺序
my_fun('猪小明', age=30, gender='男')
输出结果如下:
我叫猪小明, 性别男, 今年30岁.
我叫猪小明, 性别男, 今年30岁.
我叫猪小明, 性别男, 今年30岁.
注意:函数在调用时,如果有位置参数时,位置参数必须在关键字参数的前面
,但是关键词参数之间不存在先后顺序
定义:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不用传递该默认参数的值。当调用函数时没有传递参数,就会使用默认参数。
def my_fun(name, gender, age=20):
print(f'我叫{name}, 性别{gender}, 今年{age}岁.')
# 使用缺省参数age,调用时不传此参数
my_fun(name='猪小明', gender='男')
# 修改缺省参数age的值
my_fun(name='猪小明', gender='男', age=30)
输出结果如下:
我叫猪小明, 性别男, 今年20岁.
我叫猪小明, 性别男, 今年30岁.
注意:所有位置参数必须出现在默认参数前,包括函数定义和调用
;函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值。
定义:不定长参数也叫作可变参数,用于不确定调用的时候会传递多少个参数的场景。不定长参数的类型分为两种,分别是位置传递和关键字传递
功能:当调用函数时,不确定参数个数时,可以使用不定长参数
定义:传进的所有参数
都会被args变量收集
,它会根据传进参数的位置合并为一个元组(tuple)
,args是元组类型
,这就是位置传递
def my_fun(*args):
print(args)
# 传入一个参数
my_fun('猪小明')
# 传入两个参数
my_fun('猪小明', '男')
输出结果如下:
('猪小明',)
('猪小明', '男')
定义:参数是“键=值”键值对形式的情况下, 所有的键值对都会被kwargs接受
, 同时会根据键值对组成字典
。在函数中取值的时候可以根据key
取出对应的值
def my_fun(**kwargs):
print(kwargs)
# {'name': '猪小明', 'gender': '男', 'age': 30}
my_fun(name='猪小明', gender='男', age=30)
输出结果如下:
{'name': '猪小明', 'gender': '男', 'age': 30}
位置不定长传递
以*
号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
关键字不定长传递
以**
号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs
def printinfo(arg1, *args, **kwargs):
print(arg1)
print(args)
print(kwargs)
printinfo(70, 60, 50)
# 70
# (60, 50)
# {}
printinfo(70, 60, 50, a=1, b=2)
# 70
# (60, 50)
# {'a': 1, 'b': 2}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。