首页 > 解决方案 > 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()

标签: python

解决方案


首先,我建议global新手不要使用,不使用是更有效的方法。

其次,在solve函数中,您正在使用

for n in grid

您的网格是二维的,因此n将是一个列表。n在检查变量是否为 0 之前,您还应该迭代变量。

很简单:

# ...
for n in grid:
    for m in n:
        if m == 0:
            # other codes
# ...

你能试着用这种方式来做吗?


推荐阅读