如何将数据从 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()))
-伊莱
编辑:您也可以尝试先打印出这些值。添加打印语句
我正在尝试预测用户给出的一组值
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()))
-伊莱
编辑:您也可以尝试先打印出这些值。添加打印语句