函数
函数是完成某一功能的代码块,可以重复使用,减少相同代码。函数的定义以关键字def开头,紧接着是函数名和括号,函数内容以:开始,并且缩进。函数的参数写在括号中。结束函数,选择性地返回一个值给调用方,不带表达式的return相当于返回 None。
def 函数名(参数列表):
函数体
return 0
例如
def func1():
print("func1 print")
return 0
函数参数
定义一个函数,有两个参数,这两个参数是形参,是虚拟变量,实际并不存在。当我们在调用的时候传入两个参数,这两个参数就是实参,可以是常量,变量,表达式,函数。
def func3(x,y): # 形参
print("x入参:"+x,"y入参:"+y)
func3("20","100") # 实参
函数的参数类型:
位置参数按照函数定义的参数顺序传入,也就是说,x=”20” y=”100”
func3("20","100") # 位置参数
关键字参数按照指定关键字传入,也就是说,y=”100”,x=”20”。不需要顺序
func3(y="100",x="20") # 关键字参数
如果两种类型混合使用,那么位置参数必须在关键字参数前面,否则程序报错
默认参数在定义函数时,设置默认值。当我们调用函数时,只传入一个参数,那么x=”4”,y=”30”。如果传入两个值,那么y值就会被替换成传入的参数。相当于设置一个默认参数。
def func1(x,y="30"):
print("x入参:"+x,"y入参:"+y)
return 0
func1(4)
参数组是用来传递个数统一的参数,定义函数是参数用*
打头的参数,接收所有传递进来的参数,并转成元组。定义函数是参数用**
打头的参数,接收所有关键字参数,并转成字典。参数组的位置必须在最后。
def func4(*args):
print(args)
func4(1,2,3,4,5)
# 输出(1, 2, 3, 4, 5)
def func5(**mapValue):
print(mapValue)
func5(name="tom",age=8,school="jjt")
# 输出{'name': 'tom', 'school': 'jjt', 'age': 8}
def func6(x,home="china",*args,**argss):
print(x)
print(home)
print(args)
print(argss)
func6(2,"japan",2,3,4,name="wty",money=5000)
# 输出2
# 输出japan
# 输出(2, 3, 4)
# 输出{'name': 'wty', 'money': 5000}
当参数组*args 和**argss没有传入,那么将打印一个空的元组和空的字典
def func6(x,home="china",*args,**argss):
print(x)
print(home)
print(args)
print(argss)
func6(2,"japan")
# 输出2
# 输出japan
# 输出()
# 输出{}