TypeError:无法排序的类型:int()> Guessing_game()

汤姆猫

我正在研究python,并试图制作一个与GUI连接的猜数字程序。但是,存在错误,并且我不知道如何解决,因此请帮助我。

我的代码是

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 to new_version of the Guess My Number!"
              ).grid(row = 0, column = 0, sticky = W)

        Label(self,
              text = "Guess the 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 is not in proper range")
        elif int(user_answer) > self.answer:
            self.txt.delete(0.0, END)
            self.txt.insert(0.0, "Your guess is higher than the answer")
        elif int(user_answer) < self.answer:
            self.txt.delete(0.0, END)
            self.txt.insert(0.0, "Your guess is lower than the answer")
        else:
            self.txt.delete(0.0, END)
            self.txt.insert(0.0, "Your guess is right! the 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()

错误是

Tkinter回调Traceback中的异常(最近一次调用最近):
文件“ C:\ Python31 \ lib \ tkinter__init __。py”,行1399,在调用返回self.func(* args)文件“ D:/ Python / practice / Guess_My_Number( GUI).py“,第43行,位于Submit elif int(user_answer)> self.answer:TypeError:不可排序的类型:int()> Guessing_game()

如何将Guessing game()对象转换为int(),以便可以比较该对象和int?

史蒂文·萨默斯

它准确地告诉您错误是什么,您正在将对象与整数进行比较。相反,您应该在对象内部引用变量

if int(user_answer) > self.answer.answer:
    ...

可能要考虑修正此命名。或者考虑您是否甚至需要一堂课。另外,您的__str__方法不正确,返回值必须为字符串,而您尝试返回整数(尝试执行此操作可以看到此结果)。print(Guessing_game(0, 100))

以下内容也不尽如人意

if user_answer != None:
    int(user_answer)

user_answer 始终是一个字符串,因为您是从Entry小部件中获取值的。

相反,您可能想要

# Check if the string is a number
if not user_answer.isdigit():
    # Some error message
    return # prevent trying anything else

您还需要重新分配结果,int(user_answer)因为它不会修改您的变量,因此它实际上什么也不做(除非遇到错误)。

user_answer = int(user_answer)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TypeError:不可排序的类型:int()> list()

TypeError:不可排序的类型:Node()<Node()

TypeError:无法散列的类型

python-TypeError:无法排序的类型:str()> float()

为什么std :: list <int>无法排序?

保存Django表单会产生错误:无法排序的类型:int()> str()

PureScript无法将类型Maybe Int与类型Int匹配

计算时差-TypeError:无法将类型'Timestamp'与类型'int'比较

Python3-while ids> Stop:TypeError:不可排序的类型:str()> int()

为什么在此代码中出现“ TypeError:不可排序类型:str()<int()”?

Python 3:“ TypeError:无法从[datetime64 [ns]]到[int32]的日期时间进行类型分配”-Jupyter Notebook

Featuretools TypeError:无法散列的类型:'Int64Index'

TypeError:不可排序的类型:tuple()> int()

PyGears TypeError:[0],无法将'Int [10]'饱和为其他基本类型'Fixp [8,16]'

(TypeError:无法解压缩不可迭代的int对象)使用合并排序的反转计数器

无法将类型“ Int”的值分配给类型“ Int?”

首先:“无法找到vcvarsall.bat”,现在:“ TypeError:无法排序的类型:NonType()> = str()”

TypeError:game_1.flip不是函数

无法对任何类型的元素进行堆排序

TypeError:不可排序的类型:list()> int()

如何制作Android Guessing Game以将猜测次数限制为3次尝试,之后将显示一条消息

无法发布Google Game服务

无法将类型“ Game Scene”的值分配给类型“ SKPhysicsContactDelegate”的值

不可排序的类型:str()> int()

Python 2到3错误。TypeError:不可排序的类型:int()<= str()

不可排序的类型:str()<int()

PYTHON:根据包含 Intervals 的 dict 填充 df 的 nan 值 | 类型错误:无法排序的类型:Interval() < int()

类型错误:无法排序的类型:int() > str()

Python - 类型错误:无法排序的类型:str() < int()

TOP 榜单

热门标签

归档