Python 从输入中获取整数

Python 从输入中获取整数,python,tkinter,Python,Tkinter,如何从Tkinter条目小部件获取整数类型 如果我尝试使用variable\u name.get()获取值,它会说它是一个str。如果我尝试使用int(variable\u name.get())更改类型,它会说int只能接受字符串或数字 欢迎任何帮助 参见Tkinter的以下示例: v = StringVar() e = Entry(master, textvariable=v) e.pack() v.set("a default value") s = v.get() v是一个Strin

如何从Tkinter
条目
小部件获取整数类型

如果我尝试使用
variable\u name.get()
获取值,它会说它是一个
str
。如果我尝试使用
int(variable\u name.get())
更改类型,它会说int只能接受字符串或数字


欢迎任何帮助

参见Tkinter的以下示例:

v = StringVar()
e = Entry(master, textvariable=v)
e.pack()

v.set("a default value")
s = v.get()
v是一个StringVar类。尝试执行-int(str(variable.get()))

但是类说variable.get应该返回一个字符串

Tkinter条目有一个默认文本值,如果它不是整数数据,这可能是一个问题。

当您在问题中说“变量”时,您是指
StringVar的实例还是指小部件本身

如果您有对小部件的引用,则可以使用条目的
get
方法。这将返回一个字符串,然后可以将该字符串传递给
int
函数:

s = e.get()
i = int(s)

如果这不能解决您的问题,您能否提供一些工作代码来准确显示您遇到的问题?

我最近遇到了同样的问题。我运行了一个小方法:

newSave = self.EntryDict[key].get
        try: 
            int(newSave)
            bool = True
        except ValueError:
            bool = False
我得到了您描述的错误,它只能接受字符串或数字。
我的问题是,我的.get没有括号。在我投入之后,让一切都运转起来。我想这可能也是你的问题。但是没有看到您的任何代码,我不能确定。

我也是Tkinter的新手,我也面临着同样的问题。我认为问题在于输入字段的默认值是空字符串,不能转换为整数

我建议您尝试添加一个if语句来检查该情况:

if variable.get() != '':
    other_variable = int(variable.get())

我知道这个问题很老,但这对我来说很有用,我想我应该分享一下。

最后我只是将变量初始化为
tk.IntVar()
,而不是
tk.StringVar()

这样,您就不必将其强制转换为int,它将始终是一,并且Entry元素的默认值现在将是
0
,而不是
'

不管怎样,我就是这样做的,这似乎是最简单的方法,避免了你需要做的大量验证

int(str(variable.get()))

我尝试了这个方法,现在就可以了。

变量的值是多少?您能看到str(variable.get())的值吗?虽然这应该是不必要的,因为v.get应该返回一个字符串。
int(variable.get())
如果
variable
StringVar
,则应该可以使用。对于打印报告(variable.get())
和打印类型(variable.get()),您可以得到什么?欢迎使用StackOverflow。你能更准确地解释一下,为什么在被问到这个问题6,5年后,当它被回答时,你还要回答这个问题?如果您的答案能为问题提供一些新的见解,例如,当您的解决方案特定于较新版本的
TkInter
时,您的答案将非常有趣。最后,为了视觉上的原因,请在代码周围加上背景标记。此代码不安全。如果@int()@转换失败,您需要捕获可能的@ValueError@异常。