【发布时间】:2021-03-26 19:00:18
【问题描述】:
好吧,基本上我在高中的第一个计算机科学课上有一个作业,我能够弄清楚如何完成大部分作业。我们应该制作一个计算器,它可以使用 PEMDAS 运算符执行基本功能,并进行跨不同运算符的计算。我能够把它的大部分记下来,但我不知道如何让除法、减法或求幂来处理超过 2 个数字。请帮忙,谢谢!
作业说明:
在下面的练习中,您将创建一个程序,该程序使用递归来求解任何基本方程(加法、减法、乘法、除法和指数)。下面是您的程序的框架。
equation = input("Please enter an equation: ")
def solveIt(e):
# loop through e
# if you find a plus sign
# return recursive call @param part of e before the plus sign +
# recursive call @param part of e after the plus sign
return e
print(solveIt(equation))
不要更改任何现有代码。提供的说明将帮助您获取代码以通过加法求解方程。使用 343 + 87 + 5 之类的复合方程测试您的代码,并在继续下一步之前验证结果是否正确。
现在这是我可以用来做 8/2,但我不能做 8/2/2 的代码:
expression = input("Please enter an equation: ")
equation = expression.replace(' ', '')
res=0
total=0
def solveIt(e):
global res, total
for i in range(len(e)):
if e[i]=="/":
e1 = e[:i]
e2 = e[i+1:]
total=total+solveIt(e1) / solveIt(e2)
return total
return int(e)
(solveIt(equation))
print("total:",total)
感谢您的帮助!
【问题讨论】:
-
在
8/2/2周围提供括号,以使除法过程正常进行。
标签: python subtraction integer-division exponentiation