Discuss / Python / 关于TypeError

关于TypeError

Topic source
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输入的类型错误

要么使用raise 人工提交TypeError,要么制造一个TypeError的机会。

使用Len() == 0 去校验是否有输入,对应人工提交,另一外一种方法

使用一个必须输入的key值,当key为空的时候,自动返回TypeError是另外一种比较方便的选择,就是我上面的代码

不过因为python这个变态什么都能乘,所以还是校验下数据类型比较靠谱

print(product('abc',2,3))
>>> abcabcabcabcabcabc

#一共是6个

不如在 乘积初始化1的后面 加入 isinstance (i, (Float,Int))


  • 1

Reply