こつつみ

コツコツ積み上げる

逆ポーランド記法電卓 を作ってみた

はじめに

Twitterで #uesho開発 というタグで、簡単なものから開発したものを公開していくことにしました。 これによって、将来見返した際に成長具合が可視化できると考えています。

その第一弾として、逆ポーランド記法電卓 を作ってみました。

逆ポーランド記法 とは?

以下、引用Wikipedia

逆ポーランド記法(ぎゃくポーランドきほう、英語: Reverse Polish Notation, RPN)は、数式やプログラムの記法の一種。演算子を被演算子の後にすることから、後置記法 (Postfix Notation) とも言う。

その他の記法として、演算子を被演算子の中間に記述する中置記法、前に記述する前置記法(ポーランド記法)がある。 名称の由来は、演算子と被演算子の順序がポーランド記法の逆になっていることによる。

目的

Pythonを使い始めてまだ二ヶ月経っていなかったので、まずはPythonに慣れること。 そして、Pythonでのオブジェクト指向を学ぶこと。

やったこと

実は会社の研修でPythonではなかったですが、似たようなものを作ったため、思い出しながら作っていきました。

振り返り

学びとしては、Pythonでのabcモジュールを使った抽象クラスの作り方を知った。この抽象クラスを作ったことで演算子を追加した際に、簡単に実装することができた。 Pythonでも抽象クラスを作ることが有用に感じた。しかし、逆にPythonは動的型付け言語なので一般的にどうするべきなのかがいまいち分からなかった。 もしかしたら、抽象クラスを作らなくても綺麗にできたのかもしれない。(気づいた人は教えていただきたい)

設計の観点では、電卓への入力値が正しいか判定するクラスを作成し、正しいデータだった場合にrequestデータとしてCaluculateクラスに渡す設計にした。 現在(2021/09/26)は、CLIだけでの実装だけである。しかし、今後GUIでもできるように設計したつもりなので、時間と余力があればGUIも作っていきたい。