微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将数据从 tkinter 标签小部件转换为浮点数以实现预测功能

如何解决如何将数据从 tkinter 标签小部件转换为浮点数以实现预测功能

我正在尝试预测用户给出的一组值

ty = [fst.get(),snd.get(),trdget(),fth.get(),ffth.get(),sxth.get(),svth.get(),eth.get()]
yow=rfcmodel.predict(ty)
print(yow)

ty 为变量列表,其中变量为:

fst = Entry(root,width=50,borderwidth=5)
snd = Entry(root,borderwidth=5)
trd = Entry(root,borderwidth=5)
fth = Entry(root,borderwidth=5)
ffth = Entry(root,borderwidth=5)
sxth = Entry(root,borderwidth=5)
svth = Entry(root,borderwidth=5)
eth = Entry(root,borderwidth=5)

它给了我一个错误值:无法将字符串转换为浮点数:

我错过了什么吗?

完全追溯错误

Traceback (most recent call last):
  File "C:/Users/Zayn Justin/PycharmProjects/Software Engineering/Expert System with GUI.py",line 140,in <module>
    ty = [[float(fst.get()),float(snd.get()),float(trd.get()),float(fth.get()),float(ffth.get()),float(sxth.get()),float(svth.get()),float(eth.get())]]
ValueError: Could not convert string to float: 

编辑:我也尝试过

fst = Entry(root,borderwidth=5)
fstb = float(fst.get())
snd = Entry(root,borderwidth=5)
sndb = float(snd.get())
trd = Entry(root,borderwidth=5)
trdb = float(trd.get())
fth = Entry(root,borderwidth=5)
fthb = float(fth.get())
ffth = Entry(root,borderwidth=5)
ffthb = float(ffth.get())
sxth = Entry(root,borderwidth=5)
sxthb = float(sxth.get())
svth = Entry(root,borderwidth=5)
svthb = float(svth.get())
eth = Entry(root,borderwidth=5)
ethb = float(ethb.get())

ty = [[fstb,sndb,trdb,fthb,ffthb,sxthb,svthb,ethb]]

它仍然给了我,

Traceback (most recent call last):
  File "C:/Users/Zayn Justin/PycharmProjects/Software Engineering/Expert System with GUI.py",line 39,in <module>
    fstb = float(fst.get())
ValueError: Could not convert string to float:

解决方法

您正在传递空值。

我建议试试这个

for x in root.winfo_children():
    if x.winfo_class() == 'Entry':
        if x.get() != '':
            # push all to the array
            print(float(x.get()))
            ty.append(float(x.get()))

-Eli

编辑:您也可以尝试先打印出这些值。添加了打印语句

,

您是否使用过变量来存储用户输入的数据。

例如,

fst_val = fst.get()

他们将其用于列表中。

希望它有效...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。