我正在尝试在Python 2.7中应用PQ公式。
我将在这里发布一小段代码(问题似乎来自哪里),我将链接长版本作为粘贴板链接。
etiquette2=Label(eqGroup,text="ax^2 + bx + c")
etiquette2.pack(padx=10,pady=10,expand=True,fill=BOTH)
etiquette3=Label(eqGroup,text="Please enter a value for a")
etiquette3.pack(padx=10,pady=10,expand=True,fill=BOTH)
input1=Entry(eqGroup,width=10)
input1.pack()
etiquette4=Label(eqGroup,text="Please enter a value for b")
etiquette4.pack(padx=10,pady=10,expand=True,fill=BOTH)
input2=Entry(eqGroup,width=10)
input2.pack()
etiquette5=Label(eqGroup,text="Please enter a value for c")
etiquette5.pack(padx=10,pady=10,expand=True,fill=BOTH)
input3=Entry(eqGroup,width=10)
input3.pack()
a=input1.get()
b=input2.get()
c=input3.get()
a=DoubleVar() #Here I tried to re-type them all to a Float value, but it didn't work apparently
b=DoubleVar()
c=DoubleVar()
temp1=pow(b/2,2) #I tried to do it in steps
temp1=DoubleVar() #And to have the value conversion both before and after the assignment
temp2=sqrt(temp1-c) #But no cookies for me :/
temp2=DoubleVar()
X1=(-b/2)+temp1 #I tried to convert
X2=(-b/2)-(sqrt(pow(b/2,2)-c)) #This is the PQ formula straight up, which does not work either
指向整个事物的粘贴板链接:http://pastebin.com/Y77fHwmk
(那里的文字是瑞典语,因为我来自瑞典。但它只在少数几个地方出现,反正与问题无关)
如果您有任何想法,请告诉我^^我现在还没有设法解决这个问题太久了。到处头疼:/
回溯就在这里:
谢谢你们:)
答案 0 :(得分:2)
唯一重要的是这些:
b=DoubleVar()
temp1=pow(b/2,2)
那不行。什么是DoubleVar
?如果它不是int或float或double,那么你将度过一段美好时光。
b=DoubleVar()
如果这是您的意图,那么这不是您投射变量的方式。
相反,尝试这样的事情:
b = input2.get()
b = float(b)
或者一步到位:
b = float(input2.get())
答案 1 :(得分:1)
代码中的这些行没有意义:
a=input1.get()
b=input2.get()
c=input3.get()
a=DoubleVar() #Here I tried to re-type them all to a Float value, but it didn't work apparently
b=DoubleVar()
c=DoubleVar()
您获得a
,b
,and
c from input form but you throw tehm away and replace them with instances of
DoubleVar()`的值。
而是试试这个:
a = float(input1.get())
b = float(input2.get())
c = float(input3.get())
并删除这些行:
a=DoubleVar()
b=DoubleVar()
c=DoubleVar()