How can I sum an int with a list? TypeError: unsupported operand type(s) for +: 'int' and 'list'

How can I sum an int with a list? TypeError: unsupported operand type(s) for +: 'int' and 'list'

首先,我是python的新生,所以这可能很容易,但我在问这里之前已经尽力研究了。无论如何,如果我将 "for tall in minListe" 更改为“for minListe in [5, 2, -4, 2, -1, 0, 2, -2, 3, 0, 7]” 它可以工作,但这还不够好...任何人都知道如何做到这一点而不必在函数中包含我的列表?

total = 0

tall = 0

minListe = [5, 2, -4, 2, -1, 0, 2, -2, 3, 0, 7]

def funksjon2(total):

    total = 0 
    for tall in minListe:
        if minListe == 0:
            break
        total = total + minListe
    return (total)

def main():

    print(funksjon2(total))


if __name__ == "__main__":
    main(

)

如果我没有正确理解您的逻辑,那么您正在尝试执行以下操作。尝试下面的代码,如果有效或无效,请在下方发表评论。我在修改的地方添加了一些评论

minListe = [5, 2, -4, 2, -1, 0, 2, -2, 3, 0, 7]

def funksjon2(minListe):
    total = 0
    for tall in minListe:
        if tall == 0: # Replaced minListe by tall
            break
        total = total + tall # # Replaced minListe by tall
    return (total)

print(funksjon2(minListe))

> 4 # Answer

您正在尝试将一个列表添加到一个 int,所以从直觉上这是行不通的。您的错误在行中:

if minListe == 0:
    total = total + minListe

相反,这应该是

if tall == 0:
    total = total + tall
    # or 'total += tall'

因为 tallminListe 中的一个整数,而 minListe 是列表本身。

解决方法是: 总计 = 0 对于 minListe 中的高: 如果 minListe == 0: 休息 总计 = 总计 + 高 return(总计)

你不应该添加带有 int 的列表。只需将 tall 迭代器添加到您的总数中即可。