#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