python - Python 循环代码不会与求解器代码一起打印,可能有问题吗?
问题描述
我正在尝试创建一个循环,将矩阵中的所有 0 替换为 1-10 的数字,但它不起作用,谁能帮助我?
import numpy as np
grid = [[0, 2, 3],
[4, 0, 5],
[6, 7, 0]]
def possible(n,grid):
for x in grid:
if n in x:
return False
else:
return True
def solve():
global grid
for n in grid:
if n == 0:
for n in range(1,10):
if possible(n,grid):
n = n
solve()
return
print(np.matrix(grid))
solve()
解决方案
首先,我建议global
新手不要使用,不使用是更有效的方法。
其次,在solve
函数中,您正在使用
for n in grid
您的网格是二维的,因此n
将是一个列表。n
在检查变量是否为 0 之前,您还应该迭代变量。
很简单:
# ...
for n in grid:
for m in n:
if m == 0:
# other codes
# ...
你能试着用这种方式来做吗?
推荐阅读
- java - 为什么我没有打印时会打印
- javascript - 有没有办法在反应组件表上添加边框?
- javascript - $scope.myFunc 不是函数
- jquery - 具有固定标题和特定列数的可滚动(水平和垂直)HTML 表格(与 IE 11 兼容)
- c# - 使用 AutoMapper 更新拥有实体的属性不会将其设置为已修改
- algorithm - 根据给定的时间,估计算法可以处理的输入大小
- android - 如何检查或更新虚幻 apk api?
- php - 如何使多个电报机器人在一个 Laravel 实例上工作
- python - 由 HomeBrew 安装的 Anaconda “路径不可写或丢失。”
- c - 如何创建一个存储多个数组的指针?