如何让这个简单的Python程序为GUI中给定的输入解出一个等式

如何让这个简单的Python程序为GUI中给定的输入解出一个等式,python,tkinter,Python,Tkinter,所以我编写了这段代码,我试图让python从GUI中用变量赋值来求解一个方程,然后显示答案。您应该只需要给出其中两个变量的值,其余的应该求解。我对python还是相当陌生的。这是一场游戏,我得到的是: from Tkinter import * class Application(Frame): def __init__(self, master): Frame.__init__(self,master) self.grid() sel

所以我编写了这段代码,我试图让python从GUI中用变量赋值来求解一个方程,然后显示答案。您应该只需要给出其中两个变量的值,其余的应该求解。我对python还是相当陌生的。这是一场游戏,我得到的是:

from Tkinter import *

class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self,master)
        self.grid()

        self.d = 0
        self.size = 0
        self.mil = 0
        self.create_widgets()

    def create_widgets(self):
        self.L1 = Label(self)
        self.L2 = Label(self)
        self.L3 = Label(self)

        self.L1.grid(column = 1, row = 1)
        self.L2.grid(column = 1, row = 2)
        self.L3.grid(column = 1, row = 3)

        self.L1["text"] = "Distance from Target " + str(self.d) + "m" 
        self.L2["text"] = "Size of Target " + str(self.size) + "mils"
        self.L3["text"] = "Mil Dot adj " + str(self.mil)


        self.entryd = Entry(self, bd=5)
        self.entryd.grid(column = 2, row = 1, padx = 10)
        self.entrysize = Entry(self, bd=5)
        self.entrysize.grid(column = 2, row = 2)
        self.entrymil = Entry(self, bd=5)
        self.entrymil.grid(column = 2, row = 3)

        self.button1 = Button(self)
        self.button1["text"] = "Calculate Kill Shot"
        self.button1["command"] = self.calc
        self.button1.grid(column = 2, row = 4)



    def calc(self):
        self.d = self.entryd.get()
        self.size = self.entrysize.get()
        self.mil = self.entrymil.get()

        self.L1["text"] = "Distance from Target " + str(self.d) + "m" 
        self.L2["text"] = "Size of Target " + str(self.size) + "mils"
        self.L3["text"] = "Mil Dot adj " + str(self.mil)

        #self.d = self.size * 1000 / self.mil
    #above is the equation i tried using. 


root = Tk()
root.title("heeey")
root.geometry("400x400")
app = Application(root)

root.mainloop()

我见过一些人使用sympy,我试过了,但没有成功。任何信息都会非常有用,谢谢

看起来唯一的问题是错误的描述:

TypeError: unsupported operand type(s) for /: 'str' and 'str'
这意味着你要把一个字符串除以一个字符串。在进行计算之前,只需将字符串转换为数字:

self.d = int(self.size) * 1000 / int(self.mil)

大家好,欢迎来到StackOverflow。请花些时间阅读帮助页面,特别是命名和的部分。更重要的是,请阅读。您可能还想了解。