python - 当我将数组中的具体值与整数值进行比较时出现 ValueError
问题描述
我在以下代码中收到标题中提到的错误:
import numpy
def solve(index):
if (index >80):
return sudoku
rowIndex = int(index/9)
columnIndex = index % 9
if sudoku[rowIndex][columnIndex]!= 0:
return solve(index+1)
for input in range (1,10):
if checking(rowIndex, columnIndex, input):
sudoku[rowIndex][columnIndex] = input
if solve(index + 1):
return sudoku
sudoku[rowIndex][columnIndex]=0
return False
solve(start)
我已经查看了对这个错误的一些贡献,我对错误的理解是,如果将两个数组相互比较或者将整个数组与一个标量值进行比较,就会得到它。但是,我使用数组的唯一 if 语句是数组中的具体值,例如array[i][j] =! 0
,令我惊讶的是,代码在最后一次递归调用之前完全可以正常工作。
解决方案
这是因为您从solve() 返回np 数组或布尔值。
尝试返回 None 而不是 False。
def solve(index):
if (index >80):
return sudoku
rowIndex = int(index/9)
columnIndex = index % 9
if sudoku[rowIndex][columnIndex]!= 0:
return solve(index+1)
for input in range (1,10):
if checking(rowIndex, columnIndex, input):
sudoku[rowIndex][columnIndex] = input
if not solve(index + 1) is None:
return sudoku
sudoku[rowIndex][columnIndex]=0
return None
并更改 if 条件以适应:
if not solve(index + 1) is None:
推荐阅读
- sparql - 如何用另一个谓词来表达一个谓词?
- javascript - 使用 JDE 时正向后向 REGEX 的替代方案
- android - 颤振吸气剂问题
- javascript - 在一个 Electron 窗口中加载多个文件
- appium - io.appium.uiautomator2.common.exceptions.NoSuchDriverException:会话已终止或未启动
- mysql - MySQL 中的 JSON_SEARCH 否定
- python-3.x - 如何动态调用每个父级的__init__
- python - 使用 Python 根据列值合并和删除多行
- function - Lua - 使用定义的更多参数调用函数
- javascript - 尝试使用 @click="checkedInput" 在 Vuejs 中显示复选框标签时出现问题?