编写一个程序 使输入一个字符串,包含多个以空格分隔的四则运算表达式及计算的结果,请一行一个批改这些表达式的计算是否正确,如果正确则打√,如果错误则打╳。 例如,输入:3*5-2=17 2-3+5=4 12*30-200=1030 15*15-10*10=125 则显示: 3*5-2=17 ╳ 2-3+5=4 √ 12*30-200=1030 ╳ 15*15-10*10=125 √
时间: 2024-03-09 11:50:32 浏览: 63
以下是 Python 代码实现:
```python
while True:
try:
s = input().split()
for exp in s:
if eval(exp[:-1]) == int(exp[-1]):
print(exp, '√')
else:
print(exp, '╳')
except:
break
```
程序会不断读取输入,直到遇到 EOFError 异常为止。每次读取一行,然后根据空格分割成多个四则运算表达式及计算结果。遍历每个表达式,使用 eval() 函数计算表达式的值,与计算结果进行比较,如果相等则输出 √,否则输出 ╳。注意要用 try-except 包裹,以便捕获 EOFError 异常退出循环。
相关问题
编写程序使 输入一个字符串,包含多个以空格分隔的四则运算表达式及计算的结果,请一行一个批改这些表达式的计算是否正确,如果正确则打√,如果错误则打╳。 例如,输入:3*5-2=17 2-3+5=4 12*30-200=1030 15*15-10*10=125 则显示: 3*5-2=17 ╳ 2-3+5=4 √ 12*30-200=1030 ╳ 15*15-10*10=125 √
下面是一个Python程序的实现,可以实现输入一个包含多个四则运算表达式的字符串,检查它们的计算结果是否正确并输出结果:
```python
import re
# 定义正则表达式
pattern = r"([-+]?[0-9]+(\.[0-9]+)?)(\s*([-+*/])\s*([-+]?[0-9]+(\.[0-9]+)?))*\s*=\s*([-+]?[0-9]+(\.[0-9]+)?)"
# 输入字符串
text = input("请输入包含多个四则运算表达式的字符串:")
# 分割字符串为多个表达式
expressions = text.split()
# 遍历每个表达式
for expression in expressions:
# 检查表达式是否符合正则表达式的格式
match = re.match(pattern, expression)
if not match:
print(expression, "格式不正确")
continue
# 计算表达式的值
try:
value = eval(expression[:-1])
except:
print(expression, "格式不正确")
continue
# 比较计算结果和预期结果
if abs(value - float(match.group(8))) < 1e-6:
print(expression, "√")
else:
print(expression, "╳")
```
这个程序首先定义了一个正则表达式,用于匹配包含运算符和等号的四则运算表达式。然后从输入中分割出多个表达式,遍历每个表达式,检查它们是否符合正则表达式的格式,计算它们的值,并比较计算结果和预期结果。最后输出结果。
阅读全文