Discuss / Python / 一个测试成功一个测试失败,求解

一个测试成功一个测试失败,求解

Topic source

def product(numbers): if len(numbers)==0: raise TypeError m=1 for n in numbers: m=mn return m

def product(*numbers):
    if numbers is None:
        raise TypeError
    m=1
    for n in numbers:
        m=m*n
    return m

求大神解释if len(numbers)=0:和if numbers is None:有什么区别?多谢!

None 是一个对象,是一个 NoneType 对象,is None是用来判断是否为None,只有None is None情况下为真,作业里面product()由于参数*number所以输入的是一个空的tuple(). 搞清楚上面的就很好解决了

def product(*numbers):
    if numbers is ():
        raise TypeError
    m=1
    for n in numbers:
        m=m*n
    return m

len(numbers)==0可以理解为空列表[]、空字典{}、空元组()

def product(*numbers):
    if not numbers:
        raise TypeError
    m=1
    for n in numbers:
        m=m*n
    return m

啊明白了~多谢!

厉害了,my bro

很好很强大


  • 1

Reply