Переменная не используется - PullRequest
0 голосов
/ 24 ноября 2018

это будет мой первый вопрос здесь, так что не злись, если я что-то не так делаю.Я получил это домашнее задание угадать секретный номер, и мне пришлось внедрить в него Tkinter.Проблема в том, что счетчик не работает, так как переменная counter не используется.Я понимаю, но я жестко кодирую, как должно быть, и похоже, что нет.И для другого вопроса, ниже заявление, которое я использовал IF снова, это нормально, или вы практикуете другой код.

    import Tkinter
    import random
    import tkMessageBox

    secret_number = random.randint(1, 10)

    window = Tkinter.Tk()

    greeting = Tkinter.Label(window, text="Welcome to the game " + "guess the secret number".upper() + ". You have 5 tries.\n Select a number between 1 and 10:")
    greeting.pack()


    guess = Tkinter.Entry(window)
    guess.pack()


    def check_guess():
        counter = 0
        if int(guess.get()) == secret_number:
            counter = counter + 1 #here it states "variable not used"
            result_text = "You guessed correctly! Secret number is %s! " % secret_number
        elif int(guess.get()) > secret_number:
            counter = counter + 1
            result_text = "Wrong. Your number is to HIGH! This was your %s try." % counter
        else:
            counter = counter + 1
            result_text = "Wrong. Your number is to LOW! This was your %s try." % counter
        if counter == 5 and guess != secret_number:
            print "Secret number was %s!" % secret_number

        tkMessageBox.showinfo("Result", result_text)


    submit = Tkinter.Button(window, text="Try your luck", command=check_guess)  # check_guess, not check_guess()
    submit.pack()

    window.mainloop()

1 Ответ

0 голосов
/ 24 ноября 2018

Каждый раз, когда вызывается функция, counter будет иметь значение 0, что означает, что оно никогда не будет равно 5. Простое исправление может заключаться в использовании глобальной переменной.Вместо этого установите counter = 0 вне функции и удалите эту строку из функции.Вместо этого напишите global counter в первой строке функции.Как то так:

counter = 0
def check_guess():
    global counter
    if int(guess.get()) == secret_number:
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...