[python] 逆ポーランド記法の計算方法を実装してみよう!

Python

前回の内容は逆ポーランド記法の計算を記事にしましたが、

今回はそれをpythonで実装していきたいと思います。

前回の内容はこちらから

pythonで実装してみよう!

では早速サンプルコードをどうぞ!

stack=[]
s=input().split()
judge=0

for a in s:
    if a=="+" or a=="-" or a=="*" or a=="/":
        u=stack.pop()
        v=stack.pop()
        try:
            stack.append(str(eval(v+a+u)))
        except ZeroDivisionError:
            print("0で割りました")
            judge=1
            break
    else:
        stack.append(a)

if judge==0:
    print(stack[0])

"""実行結果
1 3 +
4

1 2 + 3 4 - *
-3

3 5 * 2 3 * 6 - /
0で割りました
"""

pop()関数は配列の一番後ろの値を取り出す関数です。

eval()関数は引数を文字列をした計算式を実際に計算してくれる関数となります。

あとはtry except構文ですかね、簡単にいうと例外処理ですね。

処理の流れをしてはまずtryの中身の処理をしてもし0で割るようなことがあったら、

exceptの中身の処理をします。

ZeroDivisionErrorというのが0で割ったときの例外処理のものです。

ほかにもいろいろあるので自分で調べてみてください。

今回は以上で終了となります。

ではまた。

コメント

タイトルとURLをコピーしました