我正在尝试使用输入窗口中的值作为数值,但它不允许我根据程序(即使我只是输入数字)将“字符串”转换为浮点值。 / p>
简短的例子:
输入来自:
etiquette5=Label(eqGroup,text="Insert value for c")
etiquette5.pack(padx=10,pady=5,expand=True,fill=BOTH)
input3=Entry(eqGroup,width=10)
input3.pack()
inputList[0]=input1.get() #To be able to move the inputs from this method I put them into a global list
输入用于:
def equationSolver(self): #For doing the math shenanigans
a=float(inputList[0])#Error here. It is unable to convert the strings that it takes in via the input to float values
b=float(inputList[1])#Error here. It is unable to convert the strings that it takes in via the input to float values
c=float(inputList[2])#Error here. It is unable to convert the strings that it takes in via the input to float values
X1=(-b/2)+(sqrt(pow(b/2,2)-c))
X2=(-b/2)-(sqrt(pow(b/2,2)-c))
globalList[0]=X1 #Once again, putting them into a global list for movement purposes
globalList[1]=X2
您可以在此处找到完整代码:http://pastebin.com/1Umug0ms
关于我如何做到这一点的任何想法?
先谢谢,Staggen
答案 0 :(得分:1)
您在用户实际输入数据之前定义inputList
。考虑这行代码:
inputList[0]=input1.get()
这会将inputList[0]
设置为该时刻中条目小部件中的值。如果在初始化函数(在显示UI之前调用的任何函数)中完成此操作,则该值将为空。当您稍后尝试使用它时,您将收到错误,因为空字符串不是有效数字。
您需要延迟获取值,直到您准备好使用它们为止。