def f1(a, b, c=0, *args, **kw):
# a,b:必选参数 c:默认参数 *arg:可变参数 **kw:关键字参数
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
# a,b:必选参数 c:默认参数 d:命名关键字参数 **kw:关键字参数
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
# 必选参数:同C/C++
# 默认参数:同C++
# 可变参数:参数个数可变,f(*arg)
# 关键字参数:参数个数可变且带有关键字key,f(**kw)
# 命名关键字参数:参数个数可变且只接收确定的关键字,fun1(*arg,key1,key2)或fun2(*,key1,key2)
# 函数入口参数的顺序:必选、默认、可变、命名关键字、关键字参数
# 注:当命名关键字前存在可变参数时不需要*号,如fun1
def product(*num):
if num==():
raise TypeError
# 当num为空时,引发(raise)一个错误
result=1
for n in num:
result*=n
return result
# 测试
print('product(5) =', product(5))
print('product(5, 6) =', product(5, 6))
print('product(5, 6, 7) =', product(5, 6, 7))
print('product(5, 6, 7, 9) =', product(5, 6, 7, 9))
if product(5) != 5:
print('测试失败!')
elif product(5, 6) != 30:
print('测试失败!')
elif product(5, 6, 7) != 210:
print('测试失败!')
elif product(5, 6, 7, 9) != 1890:
print('测试失败!')
else:
try:
# 如果try后面出现except中提到的错误,
# 则执行except,以防止程序运行中断
product()
print('测试失败!')
except TypeError:
print('测试成功!')
Python函数入门
最新推荐文章于 2022-05-13 17:47:38 发布