Python 3.x 解决无序类型:str()>;int()异常

Python 3.x 解决无序类型:str()>;int()异常,python-3.x,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

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

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()

我的代码有什么问题?

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


而且,
n==list
永远不会抛出错误,并且总是返回
False
。您想要的是
如果type(n)==list
,或者更理想的是,
如果istance(n,list)
n==list
应该做什么?您正在将可能是整数列表的内容与内置类进行比较。这真的没有什么意义。整数列表不等于内置类,将其放在
try-except
块中是很奇怪的。我想您需要
isinstance()
@JohnColeman我是python新手,“所有无效输入都应该返回字符串:'invalid Argument'”是我指令的一部分。在任何情况下,错误可能来自您向函数传递了一列未转换为整数的字符串。你应该说是哪一行抛出了错误,但我猜是
num>i
@JohnColeman这是'num>1'行。如何解决它?正如@Unlocked指出的——您正在向函数传递包含字符串的列表。如果你想得到最佳数量的帮助,你真的应该给予帮助。显示相关的呼叫代码。我猜您正在使用
input()
(或者
raw\u input()
,如果这是Python 2)从用户那里获取输入,但是您没有使用
int()
将该输入转换为整数。