博文配套视频课程:24小时实现从零到AI人工智能
必填参数
# 必填参数: 参数数量不能少,否则会抛出异常
def showinfo(name,age):
print(name,age)
showinfo('admin',18)
缺省参数
Python支持默认参数, 可以为形参设置默认值,这样让python函数有较大的灵活性,在一定程度常类似函数重载的功能 (请注意位置参数在前,默认参数在后。否则会出现语法错误)
# 缺省参数: 参数默认有缺省值, 提高函数调用的灵活性
def showinfo(name,age=18,city='深圳'):
print(name,age, city)
showinfo('admin',28,'广州')
showinfo('admin',28)
可变参数与时序解包
有时候函数的参数不确定, 如果实现多个数相加。这个时候我们需要声明就是可变参数。可变参数传入的所有参数自动组成一个tuple(元祖类型)
# 可变参数:参数数量本身可以发生变化, *代表可变参数
def add(*num):
print('num type:', type(num), num)
# 可变参数最后封装成元组类型
sum = 0
for i in num:
sum += i # sum = sum + i
return sum
# print(add(1,2,3))
# print(add(1,2,3,4,5))
# 时序解包: 函数定义时 * 代表可变参数
l = [1,2,3,4]
# 在函数调用时 * 可以对参数进行时序解包
print(add(*l))
关键字参数与时序解包
可变参数运允许你传入0个或者任意多个参数, 这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许你传入0个或者任意包含参数名的参数,这些关键字参数在函数内部自动组装一个dict
# 时序解包: 函数定义时 ** 代表关键字参数
def showinfo(name,age=18,city='深圳',**other):
print(name,age, city)
print(other,type(other))
# showinfo('小强',age=20,tel=18312345678,blood='A型')
d = {'tel': 18312345678, 'blood': 'A型'}
# 在函数调用时 ** 可以对关键字参数进行时序解包
showinfo('小强',age=20,**d)