переделал код полностью
import random
vert = [[], [], [], [], [], [], [], [], []]
gor = [[], [], [], [], [], [], [], [], []]
for x in range(0, 9):
for y in range(0, 9):
vert[x].append(" ")
gor[x].append(" ")
ok = True
while ok:
for x in range(0, 9):
for y in range(0, 9):
if vert[x][y] == " ":
num = random.randint(1, 9)
if vert[x].count(num) == 0:
if gor[y].count(num) == 0:
vert[x][y] = num
gor[y][x] = num
if vert.count(" ") == 0:
ok = False
def print_sud():
line = "|"
print("-" * 50)
for x in range(0, 9):
if x in (3, 6, 9):
print("|", "-" * 46, "|")
for y in range(0, 9):
if y in (3, 6, 9):
line += "|"
line += " " + str(gor[x][y]) + " "
print(line, "|")
line = "|"
print("-" * 50)
print_sud()
input("Нажмите любую кнопку")
смог добиться того чтобы он не останавливался, но почему выходит из цикла если остаются пробелы в списке
--------------------------------------------------
| 4 8 6 | 3 9 | 1 |
| 8 2 1 | 5 | 4 9 |
| 6 5 | 9 7 | 1 |
| ---------------------------------------------- |
| 7 6 2 | 1 9 | 3 |
| 3 9 | 6 4 | 8 |
| 4 7 | 2 | |
| ---------------------------------------------- |
| 3 8 | | 6 2 |
| 4 | 8 | 5 |
| 9 | 5 | 7 |
--------------------------------------------------
подобрать значения же можно