importre#计算器基本功能函数定义#幂运算:**

defpower(f):'''幂运算,power

:param f: 需要运算的公式,如:f = '2**3'

:return: 幂运算的结果f,str'''

#print(f,type(f)) #测试用

ret = re.split('\*\*',f)if len(ret) == 2:

f= str(float(ret[0])**float(ret[1]))returnf#乘除运算:*|

defcheng_chu(f):'''乘法和除法是同级运算,本函数进行乘除法运算并返回结果。

:param f: 待运算的公式,如2*3、3/4。

:return: 运算结果f,str'''ret= re.split(r'([*/])', f)if len(ret) == 3:if ret[1] == '*':

f= str(float(ret[0]) * float(ret[2]))else:

f= str(float(ret[0]) / float(ret[2]))returnf#加减运算:+-

defjia_jian(f):'''加法和减法是同级运算,本函数进行加减法运算并返回结果。

:param f: 待运算的公式,如2+3、3-4。

:return: 运算结果f,str'''ret= re.split('([+-])', f)if len(ret) == 3:if ret[1] == '+':

f= str(float(ret[0]) + float(ret[2]))else:

f= str(float(ret[0]) - float(ret[2]))returnf#不含()的公式运算#使用自定义函数power()、cheng_chu()、jia_jian()

defno_bracket_formula(fa):'''完成不带括号的公式运算,如:'1+3-3*2'。

:param fa: 待运算的公式,str

:return: 返回运算结果,str'''

#print(fa) # 测试用

#首先,进行幂运算

whileTrue:

ret= re.split('(\d+\.?\d*\*\*\d+\.?\d*)',fa,1)#print(ret) # 测试用

if len(ret) == 3:

ret[1] = power(ret[1])

fa= ret[0] + ret[1] + ret[2]#print(fa) # 测试用

continue

else:break

#print(fa,type(fa)) # 测试用

#其次,进行乘法和除法运算

whileTrue:

ret= re.split('(\d+\.?\d*[*/]\d+\.?\d*)',fa,1)#print(ret) # 测试用

if len(ret) == 3:

ret[1] = cheng_chu(ret[1])

fa= ret[0] + ret[1] + ret[2]#print(fa) # 测试用

continue

else:break

#print(fa, type(fa)) # 测试用

#最后,进行加减运算

whileTrue:if fa == re.match('[-+]?\d+\.?\d*', fa): #只剩下一个数值时,结束

break

else: #不止一个数值时,继续运算

ret = re.split('(\d+\.?\d*)',fa,2) #找到需要运算的两个数值,切割

#print('ret=',ret) # 测试用

if len(ret) == 5:if (ret[0] == ret[2]) or (ret[0] == '' and ret[2] == '+') :

fa= str(ret[0] + jia_jian(ret[1] + '+' + ret[3]) + ret[4])else:

fa= str(ret[0] + jia_jian(ret[1] + '-' + ret[3]) + ret[4])#print(fa) # 测试用

continue

else:break

#print(fa, type(fa)) # 测试用

#返回运算结果

returnfadefmain(fa):'''完成数学公式的运算。

思路:使用re.split()先计算()内部运算式;在求总体结果。

:param fa: 需要进行运算的公式

:return: 公式计算结果'''

whileTrue:#找出进行运算的()内公式

ret = re.split('\(([^()]+)\)',fa,1)#运算()公式,结果替换原公式中()部分

if len(ret) == 3:

ret[1] = str(no_bracket_formula(ret[1]))

fa= ret[0] + ret[1] + ret[2]continue

else:break

returnno_bracket_formula(fa)

#函数调用,进行公式运算,并返回结果

fa = '10**3+(20-(3*5)**(2.4/4.2))/5.5+5-(4*2-3)'ret=main(fa)print(fa,'=',ret)print(eval(fa)) #测试用

python数学公式代码_PythonStudy_‘数学公式计算器’代码相关推荐

  1. android复杂计算器代码,android简单计算器代码

    <android简单计算器代码>由会员分享,可在线阅读,更多相关<android简单计算器代码(9页珍藏版)>请在人人文库网上搜索. 1.package class Calcu ...

  2. python简单代码加法-Python tkinter实现简单加法计算器代码实例

    tkinter 是 Python 的标准 GUI 库.Python 使用 tkinter 可以快速的创建 GUI 应用程序.由于 tkinter 是内置到 python 的安装包中.只要安装好 Pyt ...

  3. 一元多项式计算器Java_一元多项式计算器代码.doc

    一元多项式计算器代码.doc 一元多项式计算器代码INCLUDEINCLUDEINCLUDETYPEDEFSTRUCTPOLYNODE{FLOATCOEF//系数INTEXP//指数STRUCTPOL ...

  4. python数学公式编辑工具_1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器...

    原标题:1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器 来源:量子位 关注前沿科技 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 萧箫 发自 凹非寺 ...

  5. python tkinter计算器实例_Python+tkinter使用80行代码实现一个计算器实例

    Python+tkinter使用80行代码实现一个计算器实例 本文主要探索的是使用Python+tkinter编程实现一个简单的计算器代码示例,具体如下. 闲话不说,直奔主题.建议大家跟着敲一遍代码, ...

  6. 【Python知识点梳理】10.Python的垃圾回收机制、代码规范及命令行参数

    Python的垃圾回收机制.代码规范及命令行参数 文章目录 1.Python的垃圾回收机制 2.Python的引用计数机制 3.Python中的循环数据结构及引用计数 4.Python中的GC模块 5 ...

  7. python处理速度_如何让Python处理速度翻倍?内含代码

    原标题:如何让Python处理速度翻倍?内含代码 作为在日常开发生产中非常实用的语言,有必要掌握一些python用法,比如爬虫.网络请求等场景,很是实用.但python是单线程的,如何提高python ...

  8. python登录代码思路_用python登录Dr.com思路以及代码分享

    用python登录Dr.com思路以及代码分享 发布于 2014-08-28 22:31:52 | 192 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  9. 实战:使用 Python 用不到 10 行代码计算汽车数量

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在这篇文章中,将教你如何使用 Python 用 10 行代码构建自 ...

最新文章

  1. C语言中前面有四个空格,在C语言编程中什么叫前导空格,什么叫尾随空 – 手机爱问...
  2. 百度地图滚轮缩放,所在点偏移问题
  3. 时间序列研(part10)--误差修正模型
  4. thinkphp 模板 php函数调用,thinkphp模版调用函数方法
  5. 日志分析系统搭建分析与比较
  6. 如何能理解 Spring 框架的思想?
  7. svn不知道这样的主机 怎么解决_玫瑰人生护肤品怎么样?你不知道的重要的事居然是这样的.........
  8. [转载] Python3.X之——卷积计算
  9. Educoder Basemap和Seaborn 第2关:Seaborn图形介绍
  10. 体验式培训之“盲人与哑巴”
  11. 微信转发别人语音的方法
  12. 费率转换成利率的计算器_存款利率计算器
  13. 使用Python2.7和火狐浏览器下载QQ空间好友相册
  14. C语言malloc函数详解(通俗易懂)
  15. python中for循环的用法a+aa+aaa-Python练习题 013:求解a+aa+aaa……
  16. 【FinE】债券久期和凸性
  17. 面试经历(纯属个人经历,仅供观看参考)
  18. [PTA] 7-6 厘米换算英尺英寸
  19. 文献分析工具Connected Papers
  20. linux Netfilter在网络层的实现详细分析(iptables)

热门文章

  1. MIUI13来了,米粉们还期待吗?
  2. ubuntu默认壁纸位置
  3. 装系统时遇到的一些坑
  4. 补码转原数值公式(非常简单实用的公式)
  5. 数字图像处理 第八章 图像压缩
  6. 赛宁网安合作伙伴大会成功举办,重磅发布SCBaaS服务!
  7. php属于哪种语言,php是哪种类型的语言
  8. Android音频混响特效的设置
  9. 图像分类之:经典机器学习 Battle 深度学习
  10. 基于NFC的毕业纪念卡片