我遇到的问题似乎很简单,但是我一直在寻找适合自己情况的解决方案,但找不到任何东西。基本上,我试图查看给定的网格是否是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=[]
2 回答

梦里花落0921
TA贡献1772条经验 获得超6个赞
在+=
列表上使用时,它将尝试将操作员右侧列表中的所有项目添加到左侧列表中。但是,anint
不是列表,因此您必须使用numHolder.append(grid[b][x])
。

手掌心
TA贡献1942条经验 获得超3个赞
if numHolder != 45:不要写if sum(numHolder) != 45:。sum函数需要一个list,tuple但不能是单个值。
更新:如果numHolder是a,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=[]
添加回答
举报
0/150
提交
取消