版权声明:版权归本人,仅供大家参考 https://blog.csdn.net/Dream____Fly/article/details/84189350
实现了计算器的加减乘除和带括号用算:
def Jsq(Num):
global Sum
d=[]
for i in Num: #在Num中遍历
if i.isnumeric(): #判断是否是数字
pass
else:
d.append(i) #将遍历到的数字放在b列表中
for i in Num:
if i == "+" or i == "-" or i == "*" or i == "/": #判断符号
Num = Num.replace(i, ",")
Num = Num.split(",")
k=[]
for i in Num:
i=int(i)
k.append(i)
Sum=0
for i in range(len(d)):
if "*" in d and "/" in d:
m = d.index("*")
n = d.index("/")
if m < n:
Sum = k[m] * k[m + 1]
k[m] = Sum
del k[m + 1]
d.remove(d[m])
i = 0
else:
Sum = int(k[n]) / int(k[n + 1])
k[n] = Sum
del k[n + 1]
d.remove(d[n])
i = 0
elif "*" in d:
m = d.index("*")
Sum = k[m] * k[m + 1]
k[m] = Sum
del k[m + 1]
d.remove(d[m])
i = 0
elif "/" in d:
n = d.index("/")
Sum = k[n] / k[n + 1]
k[n] = Sum
del k[n + 1]
d.remove(d[n])
i = 0
for i in range(len(d)):
if "+" in d and "-" in d:
m = d.index("+")
n = d.index("-")
if m < n:
Sum = k[m] + k[m + 1]
k[m] = Sum
k.remove(k[m + 1])
d.remove(d[m])
else:
Sum = k[n] - k[n + 1]
k[n] = Sum
k.remove(k[n + 1])
d.remove(d[n])
i = 0
elif "+" in d:
m = d.index("+")
Sum = k[m] + k[m + 1]
k[m] = Sum
k.remove(k[m + 1])
d.remove(d[m])
elif "-" in d:
n = d.index("-")
Sum = k[n] - k[n + 1]
k[n] = Sum
k.remove(k[n + 1])
d.remove(d[n])
i = 0
return Sum
def chazhao():
global Nba
global Num
global m
global n
for i in Nba:
if i == "(":
m=Nba.rfind("(")
n=Nba[m:]
for i in n:
if i ==")":
c=n.find(")")
Num=n[1:c]
Jsq(Num)
j=str(Sum)
Nba=Nba.replace(Nba[m:m+c+1],j)
Nba=input("请输入计算公式:")
1+((3-2)*2+1)
while True:
if "(" in Nba:
chazhao()
else:
Jsq(Nba)
print(Sum)
break