我得到值错误:无法将字符串转换为浮点。有人可以编辑这个吗?

2024-09-29 01:31:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试此操作,但我遇到了一个错误:无法将字符串转换为float。我找遍了,没找到解决办法。我不知道我哪里做错了。我们试图从用户那里得到的价值总是个问题。有人请帮忙吗?在

nn1 = 0
nn2 = 0
n = 0 

from tkinter import *
root = Tk()
root.title("Rectangles")

def get_ab(event):

    global nn1
    global nn2
    global n


    nn1 = float(nn1Entry.get())
    nn2 = float(nn2Entry.get())
    n = int(n3Entry.get())


button1 = Button(text="Submit")
button1.grid(column=1,row=3)
button1.bind("<Button-1>", get_ab)

label_1 = Label(root, text="Size Of Sheet")
nn1Entry = Entry(root)
nn2Entry = Entry(root)

label_1.grid(row=0, sticky=E)
nn1Entry.grid(row=0, column=1)
nn2Entry.grid(row=1, column=1)

label_2 = Label(root, text="Number of rectangles")
label_2.grid(row=2)
n3Entry = Entry(root)
n3Entry.grid(row=2,column=1)

root.mainloop()

k = n

for i in range(1,k*2+1):
     globals()['b%s' % i]=0

window = Tk()
window.title("Sizes of rectangles")

for i in range(1, k*2+1):
    nEntry = Entry(window)
    nEntry.grid(row=1, column=1)
    a = float(nEntry.get()) #Errorline is this one
    globals()['b%s' % i] = a

window.mainloop()

print(b1)

指示错误线


Tags: getcolumnrootfloatwindowgloballabelgrid
1条回答
网友
1楼 · 发布于 2024-09-29 01:31:21

正如@Nullman所说,当您执行a = float(nEntry.get())语句时,nEntry.get()返回空字符串。在

建议使用DoubleVar()

for i in range(1, k*2+1):
    var = DoubleVar()
    globals()['b%s' % i] = var
    Entry(textvariable=var).pack()

然后使用DoubleVar.get()得到结果:

^{pr2}$

如果您想使用b1b2,…)作为简单的浮点数,请尝试以下建议:

def var_trace(name, *args):
    i, var = vars[name]
    try:
        value = var.get()
    except:
        value = 0.0
    globals()['b%s' % i] = value

vars = {}
for i in range(1, k*2+1):
    var = DoubleVar()
    name = '%s' % var # get the internal name of DoubleVar
    vars[name] = (i, var)
    var.trace('w', var_trace) # var_trace will be executed whenever the variable is changed
    var.set(0.0)
    Entry(textvariable=var).pack()

然后,可以直接获得b1b2,…)的值:

print(b1)

相关问题 更多 >