回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我已经写了这段代码,不知道是什么问题。它应该是一个弹出窗口,可以使用Python中的二次公式求解二次方程<code>ax^2+bx+c=0</code></p>
<pre><code>from tkinter import *
root = Tk()
a= Entry(root, width=50, bg="white",
fg="black",
borderwidth=3.5,)
a.pack()
a.get()
b= Entry(root, width=50, bg="white",
fg="black",
borderwidth=3.5,)
b.pack()
b.get()
c= Entry(root, width=50, bg="white",
fg="black",
borderwidth=3.5,)
c.pack()
c.get()
Cscore=c.get()
Bscore=b.get()
Ascore=a.get()
#ax^2 + bx + c = 0
import math
def slove(Ascore,Bscore,Cscore):
d = math.sqrt((Bscore**2)- 4*Ascore*Cscore)
x1 = (-Bscore - d) / (2 * Ascore)
x2 = (-Bscore + d) / (2 * Ascore)
return x1, x2
x1, x2 = slove (Ascore ,Bscore ,Cscore)
#print("x1")
#print(x1)
#print("x2")
#print(x2)
def myClick():
myLabel3 = Label(root,
text="Megoldás " + x1 + x2, borderwidth=15)
myLabel3.pack()
myButton = Button(root, text="solve",
padx=10, pady=5, command=myClick,
fg= "black" , bg= "white" )
myButton.pack()
root.mainloop()
</code></pre>
<p>这是我在终端上运行后得到的错误消息:</p>
<pre><code>Traceback (most recent call last):
File "c:\matek\math_sqrtupdate.py", line 43, in <module>
x1, x2 = slove (Ascore ,Bscore ,Cscore)
File "c:\matek\math_sqrtupdate.py", line 37, in slove
d = math.sqrt((Bscore**2)- 4*Ascore*Cscore)
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
</code></pre>
<p>以前,它不是'str'而是'Entry',我用<code>Ascore,Bscore,Cscore</code>取消了它,但它不是'Entry'而是'str'。我不知道该怎么做</p>