python 3.x - TypeError: unorderable types: int() > Guessing_game() -
i studying python , trying make guessing number program connected gui. however, there bug , don't know how fix, please me.
my code
from tkinter import* import random class application(frame): def __init__(self, master): super(application, self).__init__(master) self.grid() self.widgets() self.answer = guessing_game(starting_number = 0, ending_number = 100) def widgets(self): label(self, text = "hello welcome new_version of guess number!" ).grid(row = 0, column = 0, sticky = w) label(self, text = "guess number(0-100):" ).grid(row = 1, column = 0, sticky = w) self.user_answer = entry(self) self.user_answer.grid(row = 1, column = 1, sticky = w) button(self, text = "submit", command = self.submit ).grid(row = 3, column = 0, sticky = w) self.txt = text(self, width = 50, height = 20, wrap = word) self.txt.grid(row = 4, column = 0, columnspan = 4, sticky = w) def submit(self): user_answer = self.user_answer.get() if user_answer != none: int(user_answer) if int(user_answer) not in range(101): self.txt.delete(0.0, end) self.txt.insert(0.0, "your guess not in proper range") elif int(user_answer) > self.answer: self.txt.delete(0.0, end) self.txt.insert(0.0, "your guess higher answer") elif int(user_answer) < self.answer: self.txt.delete(0.0, end) self.txt.insert(0.0, "your guess lower answer") else: self.txt.delete(0.0, end) self.txt.insert(0.0, "your guess right! number is", self.answer) class guessing_game(object): def __init__(self, starting_number, ending_number): self.answer = random.randint(starting_number,ending_number) def __str__(self): return self.answer #main root = tk() app = application(root) root.mainloop()
and error is
exception in tkinter callback traceback (most recent call last):
file "c:\python31\lib\tkinter__init__.py", line 1399, in call return self.func(*args) file "d:/python/practice/guess_my_number(gui).py", line 43, in submit elif int(user_answer) > self.answer: typeerror: unorderable types: int() > guessing_game()
how can convert guessing game() object int(), can compare object , int?
it tells error is, comparing object integer. instead should reference variable inside object
if int(user_answer) > self.answer.answer: ...
might want consider fixing naming this. or consider if need class. additionally __str__
method incorrect, return value needs string whereas trying return integer (you can see if try print(guessing_game(0, 100))
the following doesn't quite think
if user_answer != none: int(user_answer)
user_answer
string since getting value entry widget.
instead want
# check if string number if not user_answer.isdigit(): # error message return # prevent trying else
you need reassign result of int(user_answer)
since doesn't modify variable nothing ( unless encounters error )
user_answer = int(user_answer)
Comments
Post a Comment