У меня есть некоторый код, который проходит цикл for и должен выдавать мне 9 строк и 9 столбцов кнопок в окне tkinter. На этих кнопках должно быть случайное число от 1 до 9. Но я не хочу, чтобы одно и то же число в одном столбце и строке было одинаковым.
Чтобы добиться этого, я пробовал .pop [] и .remove () и del, но ни один из них не работал должным образом. Я получаю сообщение об ошибке row1.remove ("4")
ValueError: list.remove (x): x отсутствует в списке. И есть 2 одинаковых номера в одном ряду, когда я пытался удалить этот номер. Может кто-нибудь помочь, пожалуйста?
import tkinter as tk
import random
row1 = ["1","2","3","4","5","6","7","8","9"]
col1 = ["1","2","3","4","5","6","7","8","9"]
button = ["1","2","3","4","5","6","7","8","9"]
random.shuffle(button)
root = tk.Tk()
i = 0
for x in range(9):
for y in range(9):
number = random.choice(button)
btn = tk.Button(text=number, bg="white", activebackground="black",
width=2)
btn.grid(row=y, column=x)
i += 1
print(number)
if number == "1":
row1.remove("1")
col1.remove("1")
elif number == "2":
row1.remove("2")
col1.remove("2")
Кстати, элиф доходит до числа 9. Я просто не хотел все это здесь.
Я ожидаю, что результатом будет сетка 9 x 9, содержащая случайное число в диапазоне от 1 до 9, и ни одно из чисел в строке и столбце не будет одинаковым.