как мне сделать чтобы python только тогда прибавлял к i 1 когда отгодал число? Пробовал while программа виснет

from customtkinter import *
from random import randint


class Standard:
    def __init__(self, master):
        self.master = master
        self.deside = None
        self.range = None
        self.guessed = []
        self.steps = 0
        self.main_list = []
        self.total_guessed = 0

        # UI Elements
        self.range_lbl = CTkLabel(master, text='Введите число, ограничивающее диапазон:')
        self.cycle_lbl = CTkLabel(master, text='Введите количество циклов:')
        self.range_etr = CTkEntry(master)
        self.cycle = CTkEntry(master)
        self.start_count_btn = CTkButton(master, command=self.operate, text='Начать')
        self.result_lbl = CTkLabel(master, text='Результаты: ')
        self.info_box = CTkScrollableFrame(self.master, width=350)

        # Layout
        self.range_lbl.pack()
        self.range_etr.pack()
        self.cycle_lbl.pack()
        self.cycle.pack()
        self.start_count_btn.pack(pady=20)
        self.result_lbl.pack()
        self.info_box.pack()

    def operate(self):
        self.guessed = []  # Сбросить список угаданных
        self.steps = 0  # Сбросить шаги
        self.result_lbl.configure(text='Результаты: ')  # Сбросить текст метки с результатами

        try:
            self.start_count_btn['state'] = 'disabled'  # Отключите кнопку
            self.range = randint(0, int(self.range_etr.get()))  # Диапазон
            CTkLabel(self.info_box, text=f"\nСлучайное число: {self.range} ").pack()

            for i in range(int(self.cycle.get())):  # Убираем +1, чтобы цикл работал от 0 до cycle
                self.deside = randint(0, int(self.range_etr.get()))

                if self.deside not in self.guessed:
                    self.guessed.append(float(f'\n{self.steps}'))
                    self.steps += 1
                    if self.deside == self.range:
                        self.main_list.append(self.steps)
                        self.total_guessed += 1
                        result_text = f'Шаги: {self.steps}\n'  # Преобразуем в строку
                        CTkLabel(master=self.info_box, text=self.result_lbl.cget('text') + result_text).pack()
                        CTkLabel(master=self.info_box, text=f"\n1 {self.steps},"
                                 f"\n\n2 {self.main_list}, "
                                 f"\n\n3 {self.total_guessed}, "
                                 f"\n\n4 {self.range}, "
                                 f"\n\n5 {self.deside},"
                                 f"\n\n6 {self.guessed}",
                                 anchor=CENTER,
                                 ).pack()
                        self.steps = 0
                        self.guessed = []  # Сбросить угаданные после успешного угадывания
                        self.range = randint(0, int(self.range_etr.get()))  # Генерация нового числа
                        CTkLabel(self.info_box, text=f"\nНовое число:, {self.range}").pack()  # Печатаем новый диапазон

            # Очищаем все переменные в конце
            self.deside = None
            self.range = None
            self.guessed = []
            self.steps = 0
            self.main_list = []
            self.total_guessed = 0
            CTkLabel(master=self.info_box, text='===============================================================').pack()

        except ValueError:
            self.result_lbl.configure(text='Пожалуйста, введите корректные значения.')  # Сообщение об ошибке
        finally:
            self.start_count_btn['state'] = 'normal'  # Включите кнопку обратно


# Настройка приложения
tk = CTk()
tk.geometry('500x500')
set_appearance_mode("dark")
s = Standard(tk)

tk.mainloop()

Ответы (0 шт):