有什么方法可以检查条目小部件中的数据类型吗?

2024-04-25 14:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个游戏,我从玩家那里得到答案,并将他们与正确的答案进行匹配。因为我使用的是int数据类型,所以我只希望用户输入int类型的数据。我想限制用户输入任何其他数据类型,但我不能这样做。我也考虑过验证命令,但无法理解它。请帮忙。你知道吗

这是我的代码部分,我想做一些补充。。你知道吗

def checkans(self,event):
    self.e.focus_set()
    if int(self.e.get())==self.ans:
            self.score+=10

Tags: 数据答案代码用户命令selfevent游戏
1条回答
网友
1楼 · 发布于 2024-04-25 14:29:24

虽然this question可能是您真正想要的答案(正如j_4321comments中指出的那样),但是了解Entry小部件的实际工作方式可能是值得的。你知道吗

使用.get()方法的Entry返回的数据类型始终以str形式返回值:

import tkinter as tk

root = tk.Tk()

entry = tk.Entry(root)

entry.pack()

tk.Button(root, text="Check Data Type", command=lambda: print(type(entry.get()))).pack()

root.mainloop()

但是,您可以使用一系列try except检查str是否表示不同的类型(尽管这很混乱):

import tkinter as tk

root = tk.Tk()

entry = tk.Entry(root)

entry.pack()

def check(entry):
    try: 
        str(entry.get())
        print(True)
    except ValueError:
        print(False)
    try: 
        int(entry.get())
        print(True)
    except ValueError:
        print(False)
    try: 
        float(entry.get())
        print(True)
    except ValueError:
        print(False)

tk.Button(root, text="Check Data Type", command=lambda: check(entry)).pack()

root.mainloop()

相关问题 更多 >