python算法——方程计算器小工具

python算法——方程计算器小工具

工具介绍

方程计算器小工具使用python开发,可实现三元以内一次、二次等方程的计算,包含基本计算器的功能。可用于老师、学生、家长等快速验证方程的求解,检查学生作业等。

工具使用方法

1.打开工具
在这里插入图片描述
工具包括方程输入区,解显示区,按键区等。
按键的白色区域包括数字、点(.)和角度符号(°)。
数字的右侧为基本运算符号(+,-,*,/)、括号()和常量(圆周率π、自然对数E)。
下侧为复杂运算符号,包括平方(m^2),立方(m ^3),不定次方(m ^n),根号(√),任意次方根(m√n),正弦(sin),余弦(cos),正切(tan),自然对数(ln),任意对数(lg),反正弦(arcsin),反余弦(arccos),反正切(arctan),指数(exp),阶乘(n!)等。
右侧为变量(X、Y、Z)三个变量,等号(=),将结果转为小数,保留两位小数(.00),将结果转为分数(m/n),清空所有方程(AC),删除一位(退格),删除一行方程(清行),解方程(求解),清空解(清解),快速获取输入解(X值、Y值、Z值)。
2.工具使用
左侧点击方程框,应从方程1框开始,输入要求解的方程,如
在这里插入图片描述
3. 点击求解,可以得到方程的解
在这里插入图片描述
4.特殊符号说明
任意次方(m^n)、根号(√)、sin、cos、tan、asin、acos、atan、自然对数(ln)、指数(exp)需补全括号。
任意开次方(m√n)先输入n,点击符号,再输入m,补全括号。
任意对数(lg)应先输入数值,加英文逗号(,)再输入底数,补全括号。
阶乘(n!)应先点击阶乘符号,再输入数值,补全括号。

重点代码

1.使用sympy科学计算库

from sympy import *

库的安装使用pip install sympy网速不行时比较慢,解决方法是使用清华库,地址为https://pypi.tuna.tsinghua.edu.cn/simple,可查找sympy,下载相应版本库文件,再安装。
建议直接使用清华库暗转,命令为:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sympy
2. 输入框可绑定鼠标点击事件

equaet1 = Entry(root, textvariable=equation1)
……
equaet1.bind("<Button-1>", Sign1)  # 方程1绑定鼠标左键点击事件
  1. 符号替换
import re
s1 = "X-2*π=0"
strinfo = re.compile('π')  # 用正则表达式查找
s2 = strinfo.sub('pi', s1)  # 将符号π替换为系统识别的可计算的pi

4.解方程

X = Symbol('X')  # 定义符号
result = solve("2*X-4=1", "X")  # 求解方程,若多元一次方程结果为字典类型,若多次方程,结果为列表类型
……
str1 = "2*X-4=1" 
res = sympify(str1)  # sympify可将字符串转化为公式,solve可识别字符串,本案例未使用
……
#可用type({})判断是否是字典类型,用type([])判断是否是列表类型

5.结果转化为小数或分数

result = round(0.12353, 2)  # 保留两位小数为0.12
……
from fractions import Fraction
result = Fraction(0.25).limit_denominator()  # 转化为分数
  1. 打包成exe时出现maximum recursion depth exceeded问题
    原因:递归超过深度
    解决方法:打包之后,会生成.spec文件,用记事本打开文件,在最前面输入:
import sys
sys.setrecursionlimit(5000)  # 设置递归深度5000,可根据需要增加

保存后,重新以.spec文件打包
pyinstaller -F -w -i favicon.ico calculator.spec
完成后解决。

工具下载地址

工具地址:https://download.csdn.net/download/weixin_39151703/12188873
代码地址:
https://download.csdn.net/download/weixin_39151703/13641539
附清华库地址:https://pypi.tuna.tsinghua.edu.cn/simple

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值