Python 数学从左到右
所以对于作业,我需要让python从左到右进行数学运算 从这里读到, 它说“还要记住数学是从左到右计算的,除非放在括号里,最里面的括号是先计算的。” 但有没有办法强迫python从左到右进行数学运算,而不使用括号,并且忽略运算顺序 我的代码只是一个变量,在用户输入数学方程后打印出来Python 数学从左到右,python,Python,所以对于作业,我需要让python从左到右进行数学运算 从这里读到, 它说“还要记住数学是从左到右计算的,除非放在括号里,最里面的括号是先计算的。” 但有没有办法强迫python从左到右进行数学运算,而不使用括号,并且忽略运算顺序 我的代码只是一个变量,在用户输入数学方程后打印出来 x = input("Enter numbers and operators: ") print x 我需要它能做的,比如, 4+5*5=45 而不是python中的4+5*5=29 谢谢你的帮助 编辑1 use
x = input("Enter numbers and operators: ")
print x
我需要它能做的,比如,
4+5*5=45
而不是python中的4+5*5=29
谢谢你的帮助
编辑1
userinput = raw_input("Enter numbers and operators: ")
parts = userinput.split()
print parts
print eval(parts)
我输入1+1并将其打印出来,结果是['1','+','1']No。任务的重点可能是您实际上必须自己编写一些代码,而不是让python为您做所有事情,并且您必须学习如何使用列表和循环。:-)以下是一种可能的方法:
input()
获取用户要计算的表达式。您将得到一个字符串,即单个字符的一个序列“42+8*9”
应该变成“42”、“+”、“8”、“*”、“9”
。(假设运算符和数字之间有空格,则有一个名为split()
的内置函数可以执行此操作。)result
,该变量将保留到目前为止的结果,并将第一个数字放入其中。请注意,包含数字的字符串与数字不同,但可以使用int()
将此类字符串转换为数字for
循环查看列表的其余元素。每次您找到一个作为运算符的元素时,请对result
和列表中的后续编号使用该操作试着沿着这些思路来解决问题,如果您遇到问题,请告诉我们。不。任务的重点可能是您实际上必须自己编写一些代码,而不是让python为您做所有事情,并且您必须学习如何使用列表和循环。:-)以下是一种可能的方法:
input()
获取用户要计算的表达式。您将得到一个字符串,即单个字符的一个序列“42+8*9”
应该变成“42”、“+”、“8”、“*”、“9”
。(假设运算符和数字之间有空格,则有一个名为split()
的内置函数可以执行此操作。)result
,该变量将保留到目前为止的结果,并将第一个数字放入其中。请注意,包含数字的字符串与数字不同,但可以使用int()
将此类字符串转换为数字for
循环查看列表的其余元素。每次您找到一个作为运算符的元素时,请对result
和列表中的后续编号使用该操作试着沿着这些思路来解决这个问题,如果你被卡住了,请告诉我们。我认为他应该使用
raw\u input()
,否则Python会在有机会更改运算符优先级规则之前对输入进行评估:)@TimPietzckerraw\u input
在3.x中拼写为input
,所以我只有x=raw\u input(“输入数字和运算符:”)y=x.split()我不知道你会怎么做第三步。有没有一种方法可以不用for?比如使用while@glors:当然;while
也可以。您可能希望从一个更简单的任务开始,以适应以这种方式使用运算符和数字。假设您将只使用一个运算符,例如42*9
。尝试打印x.split()的结果
;它看起来像什么?你能以某种方式获得这两个数字吗?如果你尝试将这两个数字相加会发生什么情况?你能用if
检查它是什么类型的运算符吗?稍微玩弄一下,并用你发现的内容更新问题。@glors:顺便说一句,你应该使用更具描述性的名称,例如ex按
而不是x
,按expressionParts而不是y
。我认为他应该使用raw\u input()
,否则Python将在有机会更改运算符优先级规则之前对输入进行求值:)@TimPietzckerraw_input
在3.x中拼写为input
,所以我只需要x=raw_input(“输入数字和运算符:”)y=x.split(),我不知道如何执行步骤3。有没有一种方法可以在不使用for的情况下完成?喜欢用while@glors:当然可以while
也会起作用。您可能希望从一个更简单的任务版本开始,以适应以这种方式使用运算符和数字。假设您将只获得一个运算符,例如42*9
。尝试打印x.split()
的结果;它看起来像什么?你能设法得到这两个数字吗?如果您尝试将这两个数字相加,会发生什么情况?您能否使用if
检查它是哪种操作员?稍微玩玩一下,用你发现的内容更新问题。@glors:顺便说一下,你应该使用更多的描述性名称,例如expression
而不是x
,以及expressionParts
而不是y
。