数学从左到右

glo*_*ors 1 python

所以对于一个作业,我需要让python从左到右做数学.

从这里阅读, http://www.sthurlow.com/python/lesson02/

它说"还记得数学是从左到右计算的,除非你加上括号.最里面的括号是先计算的."

但无论如何强制python实际上从左到右实际数学没有括号并忽略操作的顺序?

我的代码只是一个变量,并在用户输入数学方程后打印它

x = input("Enter numbers and operators: ")
print x
Run Code Online (Sandbox Code Playgroud)

我需要它能够做到例如,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)
Run Code Online (Sandbox Code Playgroud)

我输入1 + 1并打印出来,结果是['1','+','1'] <---这是一个被认为是列表吗?我尝试eval(部分)和错误说必须是字符串或对象,我应该使用"eval"吗?

Aas*_*set 6

没有.分配的重点可能是你实际上必须自己编写一些代码,而不是让python为你做所有事情,并且你必须学习如何使用列表和循环.:-)这是一种可能的方法:

  1. 使用input()来获得用户想计算表达式.您将把它作为一个字符串,即一个单独的字符序列.
  2. 将字符串拆分为较小字符串列表,每个字符串都是数字或运算符.所以"42 + 8 * 9"应该成为"42", "+", "8", "*", "9".(有一个内置函数调用split()它,假设运算符和数字之间有空格.)
  3. 创建一个变量,例如result,将结果保持到目前为止,并将第一个数字放入其中.需要注意的是,包含数字的字符串是一样的数字,但你可以用int()这样的字符串转换成一个数字.
  4. 使用for循环查看列表的其余元素.每次找到作为运算符的元素时,请使用该操作result以及列表中的后续数字.

尝试沿着这些方向攻击问题,如果你遇到困难,请告诉我们.