python用tkinter及sympy解方程

sympy是一个库,需自己下载

pip install sympy

导入库:

from sympy import *
import tkinter as tk
from tkinter.messagebox import*

主函数:

def reg():
    try:
        Q=w.get()
        x = Symbol('x')
        H["text"]=solve([Q], [x])
    except ValueError:
        H["text"]="错误,已跳转到帮助"
        showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解一元一次方程,且未知数为x")
def iop():
    showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5*x + 20 = 100——5*x + 20 - 100,此程序只能解一元一次方程,且未知数为x")
def asd():
    def jkl():
        try:
            ER=DC.get()
            E=n.get()
            x = Symbol('x')
            y = Symbol('y')
            L["text"]=solve([ER,E], [x,y])
        except ValueError:
            L["text"]="错误,已跳转到帮助"
            showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解二元一次方程,且未知数分别为x,y")
    def bnm():
        showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解二元一次方程,且未知数分别为x,y")
    p=tk.Tk()
    p.wm_title("解方程")
    p.geometry("280x80")
    DC=tk.Entry(p)
    DC.place(x=50,y=10)
    b=tk.Label(p,text="方程1:")
    b.place(x=10,y=10)
    n=tk.Entry(p)
    n.place(x=50,y=30)
    o=tk.Label(p,text="方程2:")
    o.place(x=10,y=30)
    y=tk.Button(p,text="确认",command=jkl)
    y.place(x=10,y=50)
    L=tk.Label(p,text="")
    L.place(x=60,y=55)
    f=tk.Button(p,text="帮助",command=bnm)
    f.place(x=220,y=50)
    tk.mainloop()

基本:

f=tk.Tk()
f.wm_title("解方程")
f.geometry("280x80")
w=tk.Entry(f)
w.place(x=50,y=20)
z=tk.Label(f,text="方程:")
z.place(x=10,y=20)
a=tk.Button(f,text="确认",command=reg)
a.place(x=10,y=50)
H=tk.Label(f,text="")
H.place(x=60,y=50)
g=tk.Button(f,text="帮助",command=iop)
g.place(x=180,y=50)
h=tk.Button(f,text="二元一次",command=asd)
h.place(x=220,y=50)
tk.mainloop()

完整代码:

from sympy import *
import tkinter as tk
from tkinter.messagebox import*
def reg():
    try:
        Q=w.get()
        x = Symbol('x')
        H["text"]=solve([Q], [x])
    except ValueError:
        H["text"]="错误,已跳转到帮助"
        showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解一元一次方程,且未知数为x")
def iop():
    showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5*x + 20 = 100——5*x + 20 - 100,此程序只能解一元一次方程,且未知数为x")
def asd():
    def jkl():
        try:
            ER=DC.get()
            E=n.get()
            x = Symbol('x')
            y = Symbol('y')
            L["text"]=solve([ER,E], [x,y])
        except ValueError:
            L["text"]="错误,已跳转到帮助"
            showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解二元一次方程,且未知数分别为x,y")
    def bnm():
        showinfo(title="帮助",message="将等于号换成减号,将Sx换成S*x(S是一个数),例:5x + 20 = 100——5*x + 20 - 100,此程序只能解二元一次方程,且未知数分别为x,y")
    p=tk.Tk()
    p.wm_title("解方程")
    p.geometry("280x80")
    DC=tk.Entry(p)
    DC.place(x=50,y=10)
    b=tk.Label(p,text="方程1:")
    b.place(x=10,y=10)
    n=tk.Entry(p)
    n.place(x=50,y=30)
    o=tk.Label(p,text="方程2:")
    o.place(x=10,y=30)
    y=tk.Button(p,text="确认",command=jkl)
    y.place(x=10,y=50)
    L=tk.Label(p,text="")
    L.place(x=60,y=55)
    f=tk.Button(p,text="帮助",command=bnm)
    f.place(x=220,y=50)
    tk.mainloop()
f=tk.Tk()
f.wm_title("解方程")
f.geometry("280x80")
w=tk.Entry(f)
w.place(x=50,y=20)
z=tk.Label(f,text="方程:")
z.place(x=10,y=20)
a=tk.Button(f,text="确认",command=reg)
a.place(x=10,y=50)
H=tk.Label(f,text="")
H.place(x=60,y=50)
g=tk.Button(f,text="帮助",command=iop)
g.place(x=180,y=50)
h=tk.Button(f,text="二元一次",command=asd)
h.place(x=220,y=50)
tk.mainloop()

可以解一元一次方程或二元一次方程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值