したがって、以下のコードは、入力された情報の文字列 (数式) を取得し、find 関数を使用して "*/+-" 内の演算子の 1 つを検索し、それに応じて文字列を区切ります。
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
thenのような入力式がある場合、 を見つける前position1
に最初に見つけることです。コードで「position1」を最も左の演算子に関連付ける必要があります。for/in 関数を使用するときに演算子の優先順位を省略する方法はありますか? そうでない場合は、優先順位を省略できるより優れた文字列マニピュレータがあります。*
/
z は入力です。また、あいまいさが生じた場合に備えて、入力は 2 つの演算子に制限されます。