python实现一个简单的到括号的计算器

python实现一个简单的到括号的计算器

通过Python,做一个简单的计算器,能计算带括号的加减乘除,通过在控制台上输入一个式子,控制台输出结果。

拿到这个的时候,首先想到的是两个不好解决的点,一个是在你输入中怎样匹配到“+”,“-”,“*”,“/”,然后通过匹配到着这些字符串实现计算。二个是通过怎样匹配到括号里面的计算式,运算法则是有括号需要先算括号里面的。

首先我得将输入的式子(实质接收到的是字符串)按数字,运算字符,括号切割开来。怎么切开来,找过一些资料,之前只知道Python里的 re 模块能通过正则做一些匹配,切割之内的处理。

最开始只知道按匹配的字符进行切割
如:

	import re
	str = "12+4*(2+3)-5+4/2"
	print(re.split(r"\D",str))
	['12', '4', '', '2', '3', '', '5', '4', '2']
	#这里的  \D  是匹配到非数字的进行切割,得到的全是数字,匹配项没有输出

这里就把所有的数字都切割出来了,但是我想把所有的全部切割得到字符串的列表

如:

	import re
	str = "12+4*(2+3)-5+4/2"
	print(re.split(r"(\D)",str))
	['12', '+', '4', '*', '', '(', '2', '+', '3', ')', '', '-', '5', '+', '4', '/', '2']
	#这里的  "(\D)"  将匹配项也输出

这里就能将输入的字符串全部进行你需要得到的处理,我的这一段处理的代码块

def split_str(shizi):
    #将整个字符串切割
    str = re.split(r"(\D)",shizi) #指定分割符用()括起来,表示保留匹配项
    #print(str)
    #str.pop()
    print(str)
    for index,i in enumerat
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值