数学从左到右

时间:2012-03-18 21:31:12

标签: python

因此,对于作业,我需要让python从左到右进行数学运算。

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

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

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

我的代码只是一个变量,在用户输入数学等式后打印出来

x = input("Enter numbers and operators: ")
print x

我需要它能够做到例如, 4 + 5 * 5 = 45

而不是4 + 5 * 5 = 29 in python

感谢任何帮助

编辑1

userinput = raw_input("Enter numbers and operators: ")
parts = userinput.split()
print parts
print eval(parts)

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

1 个答案:

答案 0 :(得分:6)

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

  1. 使用input()获取用户想要评估的表达式。您将把它作为一个字符串,即一个单独的字符序列。
  2. 将字符串拆分为较小字符串列表,每个字符串都是数字或运算符。因此"42 + 8 * 9"应该成为"42", "+", "8", "*", "9"。 (有一个名为split()的内置函数可以执行此操作,假设运算符和数字之间有空格。)
  3. 创建一个变量,例如result,这将保持结果到目前为止,并将第一个数字放入其中。请注意,包含数字的字符串与数字相同,但您可以使用int()将此类字符串转换为数字。
  4. 使用for循环查看列表的其余元素。每次找到作为运算符的元素时,请在result上使用该操作以及列表中的后续数字。
  5. 尝试沿着这些方向攻击问题,如果你遇到问题,请告诉我们。