因此,对于作业,我需要让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”吗?
答案 0 :(得分:6)
没有。分配的重点可能是你实际上必须自己编写一些代码,而不是让python为你做所有事情,并且你必须学习如何使用列表和循环。 :-)这是一种可能的方法:
input()
获取用户想要评估的表达式。您将把它作为一个字符串,即一个单独的字符序列。"42 + 8 * 9"
应该成为"42", "+", "8", "*", "9"
。 (有一个名为split()
的内置函数可以执行此操作,假设运算符和数字之间有空格。)result
,这将保持结果到目前为止,并将第一个数字放入其中。请注意,包含数字的字符串不与数字相同,但您可以使用int()
将此类字符串转换为数字。for
循环查看列表的其余元素。每次找到作为运算符的元素时,请在result
上使用该操作以及列表中的后续数字。尝试沿着这些方向攻击问题,如果你遇到问题,请告诉我们。