为了账号安全,请及时绑定邮箱和手机立即绑定

发出将列表中一行中的所有元素相加并求和的问题

发出将列表中一行中的所有元素相加并求和的问题

忽然笑 2021-03-30 13:11:40
我遇到的问题似乎很简单,但是我一直在寻找适合自己情况的解决方案,但找不到任何东西。基本上,我试图查看给定的网格是否是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])


查看完整回答
反对 回复 2021-04-20
?
手掌心

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=[]


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号