TypeError: niet-ondersteunde operandtype(s) voor +=: ‘int’ en ‘list’

Ik probeer een project in python uit te voeren. Ik krijg een fout in de regel

s+=line

TypeError: unsupported operand type(s) for +=: 'int' and 'list'

Hier is de functie genaamd testIfCorrect:

def testIfCorrect(world, x, y):
    s=0
    for line in world:
        s+=line
        print("ligne",line)
        if(s > 2):
            return False
    for i in range(x):
        if(sum(returnColumn(world, i)) > 2):
            return False
    for j in range(x):
        for k in range(y):
            if(j == k):
                pass
            else:
                if(world[j] == world[k]):
                    return False
                if(returnColumn(world, j) == returnColumn(world ,k)):
                    return False
def returnColumn(array, column):
    return [col[column] for col in array]

Waar zit de fout?


Antwoord 1, autoriteit 100%

In

s=0
for line in world:
    s+=line

Hier is seen int en wordis een 2D-lijst. Dus in for line in worldis lineeen 1D List. Het is onmogelijk om een ​​Listtoe te voegen aan een inttype. Hier, s+=linein onjuist

Dus in s+=linekun je s+=sum(line)vervangen. Ik denk dat je je antwoord hebt gevonden.

Probeer dit:

s=0
for line in world:
    s+=sum(line)

LEAVE A REPLY

Please enter your comment!
Please enter your name here

three + ten =

Other episodes