def product(n,*nums): for i in nums: n = n * i return n
# 测试 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: product() print('测试失败!') except TypeError: print('测试成功!')
TypeError输入的类型错误
TypeError
要么使用raise 人工提交TypeError,要么制造一个TypeError的机会。
raise
使用Len() == 0 去校验是否有输入,对应人工提交,另一外一种方法
Len() == 0
使用一个必须输入的key值,当key为空的时候,自动返回TypeError是另外一种比较方便的选择,就是我上面的代码
key
不过因为python这个变态什么都能乘,所以还是校验下数据类型比较靠谱
print(product('abc',2,3)) >>> abcabcabcabcabcabc #一共是6个
不如在 乘积初始化1的后面 加入 isinstance (i, (Float,Int))
isinstance (i, (Float,Int))
Sign in to make a reply
忆往昔念往昔往昔不复悔不当初
TypeError
输入的类型错误要么使用
raise
人工提交TypeError
,要么制造一个TypeError
的机会。使用
Len() == 0
去校验是否有输入,对应人工提交,另一外一种方法使用一个必须输入的
key
值,当key
为空的时候,自动返回TypeError
是另外一种比较方便的选择,就是我上面的代码不过因为python这个变态什么都能乘,所以还是校验下数据类型比较靠谱
不如在 乘积初始化1的后面 加入
isinstance (i, (Float,Int))