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 s
een int en word
is een 2D-lijst. Dus in for line in world
is line
een 1D List
. Het is onmogelijk om een List
toe te voegen aan een int
type. Hier, s+=line
in onjuist
Dus in s+=line
kun je s+=sum(line)vervangen. Ik denk dat je je antwoord hebt gevonden.
Probeer dit:
s=0
for line in world:
s+=sum(line)