Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで電卓操作を実行するクラスを作成する方法

電卓の操作を実行するクラスを作成するには、オブジェクト指向のアプローチを利用します。具体的には、クラスを定義して属性(データ)を持ち、その中に各種演算を行うメソッド(関数)を記述します。そして、クラスのインスタンスを生成し、メソッドを呼び出すことで、加算・減算・乗算・除算といった電卓の機能を実現できます。

以下に、実際の実装例を示します。

サンプルコード

class calculator_implementation():
   def __init__(self, in_1, in_2):
      self.a = in_1
      self.b = in_2
   def add_vals(self):
      return self.a + self.b
   def multiply_vals(self):
      return self.a * self.b
   def divide_vals(self):
      return self.a / self.b
   def subtract_vals(self):
      return self.a - self.b

input_1 = int(input("1つ目の数値を入力してください: "))
input_2 = int(input("2つ目の数値を入力してください: "))
print("入力された数値は次のとおりです:")
print(input_1, input_2)

my_instance = calculator_implementation(input_1, input_2)
choice = 1
while choice != 0:
   print("0. 終了")
   print("1. 加算")
   print("2. 減算")
   print("3. 乗算")
   print("4. 除算")
   choice = int(input("選択してください... "))
   if choice == 1:
      print("加算の計算結果 : ", my_instance.add_vals())
   elif choice == 2:
      print("減算の計算結果 : ", my_instance.subtract_vals())
   elif choice == 3:
      print("乗算の計算結果 : ", my_instance.multiply_vals())
   elif choice == 4:
      print("除算の計算結果 : ", round(my_instance.divide_vals(), 2))
   elif choice == 0:
      print("終了します")
   else:
      print("無効な選択です。もう一度お試しください!")

実行結果

1つ目の数値を入力してください: 70
2つ目の数値を入力してください: 2
入力された数値は次のとおりです:
70 2
0. 終了
1. 加算
2. 減算
3. 乗算
4. 除算
選択してください... 1
加算の計算結果 : 72
0. 終了
1. 加算
2. 減算
3. 乗算
4. 除算
選択してください... 2
減算の計算結果 : 68
0. 終了
1. 加算
2. 減算
3. 乗算
4. 除算
選択してください... 3
乗算の計算結果 : 140
0. 終了
1. 加算
2. 減算
3. 乗算
4. 除算
選択してください... 4
除算の計算結果 : 35.0
0. 終了
1. 加算
2. 減算
3. 乗算
4. 除算
選択してください... 0
終了します

コードの解説

  • クラスの定義: 「calculator_implementation」という名前のクラスを定義し、「add_vals」「subtract_vals」「multiply_vals」「divide_vals」の4つのメソッドを持たせています。
  • 各メソッドの役割: これらのメソッドは、それぞれ加算・減算・乗算・除算という電卓の基本操作を実行します。
  • コンストラクタ(__init__): インスタンス生成時に2つの数値を受け取り、それぞれ属性「self.a」「self.b」に格納します。これにより、すべてのメソッドから同じデータを参照できるようになります。
  • インスタンスの生成: ユーザーが入力した2つの数値をもとに、クラスのインスタンス「my_instance」を作成します。
  • メニュー方式のループ処理: whileループを使ってメニューを繰り返し表示し、ユーザーが「0」を選択するまで演算を続けられるようにしています。「0」以外の無効な値が入力された場合は、エラーメッセージを表示します。
  • 結果の表示: 各演算の結果はコンソールに出力されます。特に除算では、round()関数を使って小数点第2位まで丸めて表示することで、見やすい出力になるように工夫しています。

まとめ

このように、Pythonではクラスを使って関連する処理をひとつにまとめることで、再利用性が高く読みやすいコードを書くことができます。今回の電卓クラスはシンプルな例ですが、__init__による初期化、メソッドによる機能の分割、インスタンスを通じた操作など、オブジェクト指向プログラミングの基本的な考え方を学ぶのに最適な題材です。ぜひ自分でコードを書きながら、動作を確認してみてください。

  1. Pythonの継承とは?単一継承と階層継承の基本をサンプルコードで解説

    本記事では、Python 3.xにおける継承(インヘリタンス)とクラスの拡張方法について詳しく解説します。 継承とは、現実世界のモノや概念の関係性を自然に表現できる、オブジェクト指向プログラミングの中核となる仕組みです。継承を活用すると、次のようなメリットが得られます。 再利用性:すでに書いたコードを流用でき、重複を削減できる 推移性:クラス間の関係を連鎖的に引き継げる 開発速度の向上:ゼロから書かずに済むため、短期間で開発できる 保守性・拡張性:既存クラスを壊さずに機能を追加しやすい 継承の5つの種類 Pythonの継承は、その構造によって主に以下の5種類に分類されます。 単一継承(

  2. Pythonで名前空間を作成する方法をわかりやすく解説

    Pythonでは、パッケージ、モジュール、クラス、関数、メソッドのそれぞれが独自の「名前空間(namespace)」を持っており、変数名はこの名前空間の中で解決されます。そして、関数やモジュール、パッケージが評価される(つまり実行が開始される)タイミングで、新しい名前空間が自動的に生成されます。そのため、名前空間を作成したい場合は、以下のいずれかの操作を行うだけで実現できます。関数を呼び出すオブジェクトをインスタンス化するモジュールをインポートするパッケージをインポートする例えば、「Namespace」というクラスを定義し、そのクラスのインスタンスを生成すれば、そのオブジェクト自体が一つの名前