Я запустил свою программу, но ничего не отображается, не могу найти проблему с программой

#python

#python

Вопрос:

я пытаюсь провести тематическое исследование игры в угадайку, но она не работает

исправление отступа breezypythongui.py в ту же папку, но по-прежнему ничего не появляется

 import random
from breezypythongui import EasyFrame

class GuessingGame(EasyFrame):
    """playing a guessing game with a user."""

    def __init__(self):
        """setting up the window,widgets and data."""
        EasyFrame.__init__(self, title = "Guessing Game")
        # Initialize the instance variables for the data
        self.myNumber = random.randint(1,100)
        self.count = 0
        # Create and add widgets to the window
        greeting = "Guess a number between 1 and 100."
        self.hintLabel = self.addLabel(text = greeting,
                                       row = 0, column = 0,
                                       sticky = "NSEW",
                                       columnspan = 2)
        self.addLabel(text = "Your guess", row = 1, column = 0)
        self.guessField = self.addIntegerField(0, row = 1, column = 1)
        # Buttons have no command attributes yet
        self.nextButton = self.addButton(text = "Next",row = 2,
                                         column = 0,
                                         command = self.next)
        self.newButton = self.addButton(text = "New game",
                                        row = 2,column = 1,
                                        command = self.reset)


    def nextGuess(self):
        """Processes the user's next guess."""
        self.count  = 1
        guess = self.guessField.getNumber()
        if guess == self.myNumber:
            self.hintLabel["text"] = "You've guessed it in "   
                                     str(self.count)   " attempts!"
            self.nextButton["state"] = "disabled"
        elif guess < self.myNumber:
            self.hintLabel["text"] = "Sorry, too small!"
        else:
            self.hintLabel["text"] = "Sorry, too large!"

    def newGame(self):
        """Resets the data and GUI to their original states."""
        self.myNumber = random.randint(1, 100)
        self.count = 0
        greeting = ("Guess a number between 1 and 100.")
        self.hintLabel["text"] = greeting
        self.guessField.setNumber(0)
        self.nextButton["state"] = "normal"

def main():
    """Instantiate and pop up the window."""
    GuessingGame().mainloop()
    if __name__=="__main__":
        main()
  

я ожидаю, что программа сообщит мне, близок ли я к правильному числу или двум низким

Комментарии:

1. используйте кнопку {} для правильного форматирования кода.

2. Я не знаю EasyFrame , но не должно быть некоторых show() , pack() , display() и т.д., как в других графических интерфейсах?

3. если это код из вашего файла, удалите отступ в if __name__=="__main__":

Ответ №1:

Я не могу ее запустить, но вижу неправильный отступ if __name__=="__main__": . Удалите отступ.

 def main():
    """Instantiate and pop up the window."""
    GuessingGame().mainloop()

if __name__=="__main__":
    main()
  

Комментарии:

1. я исправил отступ, но теперь его объект show ‘GuessingGame’ не имеет атрибута ‘next’

2. итак, старая проблема решена, и у вас появилась новая проблема — вы должны создать новый вопрос на новой странице. И у вас будет место для полной обратной трассировки.

3. вы назначаете функцию кнопке command = self.next , но у вас нет этой функции в class ( def next(self): ) — так чего же вы ожидаете? Кстати: у вас будет такая же проблема с command = self.reset