因此,下面的代码采用一串输入信息(数学表达式),并使用 find 函数在 "*/+-" 中找到一个运算符并相应地分隔字符串。
def splitting1(z):
for operators in "*/+-":
if operators in z:
position1= z.find(operators)
position2= z.rfind(operators)
text_before_operators= (z[:position1]).strip()
text_after_operators= (z[(position1+1):(position2)]).strip()
return text_before_operators,text_after_operators
我的问题是,如果我有一个输入表达式,例如3/5*7
thenposition1
会在 find*
之前先找到/
。我希望代码将“position1”与最左边的运算符相关联。使用 for/in 函数时有没有办法省略运算符优先级?如果没有,是否有更好的字符串操纵器可以省略优先顺序。
注意 z 是输入。并且输入仅限于两个运算符,以防产生歧义。