因此对于作业,我需要让 python 从左到右进行数学计算。
从阅读这里, http://www.sthurlow.com/python/lesson02/
它说“还要记住数学是从左到右计算的,除非你放在括号中。最里面的括号首先计算。”
但是无论如何强制 python 实际上从左到右计算而不带括号并且忽略操作顺序?
我的代码只是一个变量,并在用户输入数学方程式后打印它
x = input("Enter numbers and operators: ")
print x
例如,我需要它能够做到, 4 + 5 * 5 = 45
而不是 4+5*5 = 29 在 python 中
感谢任何帮助
编辑 1
userinput = raw_input("Enter numbers and operators: ")
parts = userinput.split()
print parts
print eval(parts)
我输入 1 + 1 并打印出来,结果是 ['1', '+', '1'] <---这算是一个列表吗? 我尝试 eval(parts),但错误提示必须是字符串或对象,我应该使用“eval”吗?
请您参考如下方法:
没有。作业的重点可能是您实际上必须自己编写一些代码,而不是让 python 为您做所有事情,并且您必须学习如何使用列表和循环。 :-) 这是一种可能的方法:
- 使用
input()获取用户想要计算的表达式。您将得到一个字符串,即一个单独字符的序列。 - 将字符串拆分为较小字符串的列表,每个字符串都是一个数字或一个运算符。所以
"42 + 8 * 9"应该变成"42", "+", "8", "*", "9"。 (有一个称为split()的内置函数可以执行此操作,假设运算符和数字之间有空格。) - 创建一个变量,例如
result,将保留到目前为止的结果,并将第一个数字放入其中。请注意,包含数字的字符串与数字不同,但您可以使用int()将此类字符串转换为数字。 - 使用
for循环查看列表的剩余元素。每次找到作为运算符的元素时,对result和列表中的后续数字使用该操作。
尝试按照这些思路解决问题,如果遇到困难,请告诉我们。
