解决无法解决的类型:str()> int()异常

时间:2017-03-26 23:24:18

标签: python-3.x

我正在编写一个简单的函数,它接受一个整数列表,并返回数组中所有素数的总和。 到目前为止,这是我的代码:

def sum_of_primes(n):
    try:
        n == list
    except ValueError:
        return 'Invalid Argument'
    sum = 0
    fact = []

    for i in range(0, len(n)):
        num = n[i]
        if num > 1:
            fact = []
            for j in range (1, num+1):
                if num % j == 0:
                    fact += [j]
        if fact == [1, num]:
            sum = sum + num

但我一直收到这个错误。

Unhandled Exception: unorderable types: str() > int()

我的代码有什么问题?

1 个答案:

答案 0 :(得分:1)

n不是整数列表,或者至少不完整。 n中有一个字符串,当它与1比较时会抛出一个错误。

此外,n == list永远不会抛出错误,并且始终会返回False。您想要的是if type(n) == list,或者更优选if isinstance(n, list)