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

How do I convert data from tkinter label widget into float for predictive function

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

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, width=50, borderwidth=5)
trd = Entry(root, width=50, borderwidth=5)
fth = Entry(root, width=50, borderwidth=5)
ffth = Entry(root, width=50, borderwidth=5)
sxth = Entry(root, width=50, borderwidth=5)
svth = Entry(root, width=50, borderwidth=5)
eth = Entry(root, width=50, 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, width=50, borderwidth=5)
fstb = float(fst.get())
snd = Entry(root, width=50, borderwidth=5)
sndb = float(snd.get())
trd = Entry(root, width=50, borderwidth=5)
trdb = float(trd.get())
fth = Entry(root, width=50, borderwidth=5)
fthb = float(fth.get())
ffth = Entry(root, width=50, borderwidth=5)
ffthb = float(ffth.get())
sxth = Entry(root, width=50, borderwidth=5)
sxthb = float(sxth.get())
svth = Entry(root, width=50, borderwidth=5)
svthb = float(svth.get())
eth = Entry(root, width=50, 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:

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

例如,

fst_val = fst.get()

他们将其用于列表中。

希望它有用...

您正在传递空值。

我建议试试这个

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()))

-伊莱

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