@Desmoke

Проблема с Генератором, как пофиксить ошибку?

Приветствую тех, кто читает этот вопрос.
Не могли бы вы помочь?
Итак, я написал генератор с гуи, но есть проблемка,
Он не записывает нужное количество кодов в txt.
Вот форма:
604df2ac433bd064404279.png
*Сверху и снизу lineEdit'ы, по середине pushButton

Если вписать какое-то число, то должно генерироваться и записываться данное количество в txt.
Но как бы не так, при нажатии на кнопку генерации, генерируется и записывается всего 1 код.

Вот собственно сам код:
class PMain(QtWidgets.QMainWindow):
    def __init__(self):
        super(PMain, self).__init__()
        uic.loadUi("interface.ui", self)
        self.setWindowTitle("Генератор Дискорд Нитро")
        self.setWindowIcon(QtGui.QIcon("`pwd`/icon.ico"))

        if self.lineEdit_2.text() == "Введи количество желаемых кодов:":
            self.pushButton.clicked.connect(self.gen)
        else:
            self.pushButton.clicked.connect(self.how_much)

    def gen(self):
        f = open("code.txt", "a+")
        code = "https://discord.gift/" + ''.join(random.choices(string.ascii_letters + string.digits, k=16))
        f.write(f"{code}\n")
        f.close()
        self.lineEdit.setText(code)

    def how_much(self):
        n = int(self.lineEdit_2.text())
        value = 1
        while value <= n:
             code = "https://discord.gift/" + ('').join(random.choices(string.ascii_letters + string.digits, k=16))
             f = open('code.txt', "a+")
             f.write(f'{code}\n')
             f.close()
        value += 1


Помогите!
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
MinTnt
@MinTnt
value += 1
находится вне цикла, поэтому данный цикл бессконечен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alexbprofit
Junior SE
def how_much(self):
        n = int(self.lineEdit_2.text())
        value = 1
        f = open('code.txt', "a+")
        while value <= n:
             code = "https://discord.gift/" + ('').join(random.choices(string.ascii_letters + string.digits, k=16))

             f.write(f'{code}\n')
             value += 1
       f.close()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы