在python中有没有办法将还不存在的数字进行转换?(已解决)

问题描述 投票:0回答:1

我在写一个简单的数学程序,这是我第一个基于UI的应用。我试图获取条目并将其变成一个数字。

s2E=tk.Entry()
s3E=tk.Entry()
s1Str=str(s1E)
s2Str=str(s2E)
s3Str=str(s3E)
s1=int(s1Str)
s2=int(s2Str)
s3=int(s3Str)

然而,它返回一个错误。

File "C:\Users\Owner\Desktop\Programming\PythonPrograms\UItest.py", line 19, in <module>                                                                                                                                         s1=int(s1Str)
ValueError: invalid literal for int() with base 10: '.!entry'
python tkinter
1个回答
2
投票

A tk.Entry 不容易转换为python整数。当你尝试 str(tk.Entry),它将返回 '!entry'. 当将字符串转换为整数时,你可以指定一个转换的基数,并可以用 int() 将根据基数进行转换(双关语)。对于基数10,你没有字母或符号,所以不可能转换为 '!entry' 变成一个整数。你需要调用 tk.Entry().get(),它将返回条目中的任何字符串。然而,它会即时返回,不给用户输入任何东西的时间,所以你会得到一个空字符串。''. 同样,符号 "nothing "不在基数10中,所以会产生错误。你需要在检查之前放一个时间延迟,让用户输入一些东西,或者你可以做一个按钮,当用户按下时,调用一个函数来检查你想检查的东西。

def check():
    global s1, s2, s3
    s1 = s1E.get()
    s2 = s2E.get()
    s3 = s3E.get()

butt1 = tk.Button(text='Submit numbers', command=check)
...

当用户按下按钮时,这将会检查并分配所有条目中的值, 让他有时间输入。

© www.soinside.com 2019 - 2024. All rights reserved.