def plus(m,n): return m+n def minus(m,n): return m-n def multiple(m,n): return m*n def division(m,n): return m/n def mainO: s=input("请输入四则运算表达式:") m=s[0] for i in range( (1) _len(s)): if s[i] not in "+_*/": m=m+s[i] else: n=eval(m) m= (2) op= (3) m=eval(m) (4) d={"+":plus(m,n),"-":minus(m,n),"*"l:multiple(m,n),"/":division(m,n)} print("{:2f}".format(d[ (5) ])) main()
时间: 2024-01-09 09:04:21 浏览: 75
mop-minus-proposal:Perl 类生成器
这段代码有一些错误,我来帮你解析一下:
1. 第 7 行的括号不应该有下划线,应该是 `range(1, len(s))`。
2. 第 10 行的 `m` 变量应该初始化为 `m=s[0]` 而不是 `m=0`。
3. 第 13 行的 `op` 变量没有被正确赋值,应该是 `op=s[i]`。
4. 第 14 行的 `m=eval(m)` 应该改为 `m=str(n)`。
5. 第 15 行的 `d` 字典中的键应该是 `op` 而不是空格。
修正后的代码如下:
```python
def plus(m, n):
return m + n
def minus(m, n):
return m - n
def multiple(m, n):
return m * n
def division(m, n):
return m / n
def main():
s = input("请输入四则运算表达式:")
m = s[0]
for i in range(1, len(s)):
if s[i] not in "+-*/":
m = m + s[i]
else:
n = eval(m)
m = str(n)
op = s[i]
n = eval(m)
d = {'+': plus(n, m), '-': minus(n, m), '*': multiple(n, m), '/': division(n, m)}
print('{:.2f}'.format(d[op]))
main()
```
需要注意的是,这段代码只能计算两个数的四则运算,且结果保留两位小数。如果要计算多个数的四则运算,需要对代码进行相应的修改。
阅读全文