我正在制作一款游戏,其中我会从玩家那里得到答案,并将他们与正确的答案相匹配。当我使用int数据类型时,我只希望用户输入数据的int类型。我想限制用户输入任何其他数据类型,但是我不能这样做。我也考虑过validate命令,但无法理解。请帮忙。
这是我的代码部分,我想在其中添加一些内容。
def checkans(self,event):
self.e.focus_set()
if int(self.e.get())==self.ans:
self.score+=10
答案 0 :(得分:0)
尽管this question可能是您真正想要的答案(正如comments在j_4321中指出的那样),但也许值得了解Entry
小部件实际上有效。
Entry
使用.get()
方法返回的数据类型始终将值返回为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()
但是,您可以使用一系列str
来检查try except
是否代表不同的类型(尽管这很麻烦):
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()