我到达这里的问题似乎很简单,但是我一直在寻找适合自己情况的解决方案,但找不到任何东西。基本上,我试图查看给定的网格是否是Sudoku的有效/可解决游戏。我相信我解决该问题的方法是正确的,并且我已经能够获取一列中所有数字的总和并检查它是否等于!=45。我遇到的问题是当我尝试将每个数字相加时,它给了我错误:
TypeError:“ int”对象不可迭代
我对为什么收到此错误感到困惑。我仍在学习python,但是我对Java很满意。我在Java中用于执行此操作的代码有些相关,因此可能是问题所在。让我知道你们看到的东西:
for b in range(0,9):
for x in range(0,9):
numHolder+=grid[b][x]
if sum(numHolder) != 45:
return False
numHolder=[]
答案 0 :(得分:1)
在列表上使用+=
时,它将尝试将操作员右侧列表中的所有项目添加到左侧列表中。但是,int
不是列表,因此您将不得不使用numHolder.append(grid[b][x])
。
答案 1 :(得分:-1)
写if numHolder != 45:
而不是if sum(numHolder) != 45:
。 sum
函数需要一个list
,tuple
等,但不能有单个值。
更新:如果numHolder是list
,则应输入:
for b in range(0,9):
for x in range(0,9):
numHolder.append(grid[b][x])
if sum(numHolder) != 45:
return False
numHolder=[]