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

クラスを使って長方形の面積を求めるPythonプログラム

クラスを使用して長方形の面積を求める必要がある場合、オブジェクト指向のアプローチを活用するのが効果的です。具体的には、まずクラスを定義し、その中に属性(長さや幅など)を設定します。さらに、クラス内に特定の処理を行うメソッドを定義し、クラスのインスタンスを作成することで、そのメソッドを呼び出して長方形の面積を計算できます。

このアプローチにより、コードの再利用性が高まり、データと処理をひとまとめにして管理できるため、より規模の大きなプログラムでも保守しやすくなります。

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

サンプルコード

class shape_rectangle():
   def __init__(self, my_length, my_breadth):
      self.length = my_length
      self.breadth = my_breadth
   def calculate_area(self):
      return self.length * self.breadth

len_val = 6
bread_val = 45
print("長方形の長さは : ")
print(len_val)
print("長方形の幅は : ")
print(bread_val)

my_instance = shape_rectangle(len_val, bread_val)
print("長方形の面積 : ")
print(my_instance.calculate_area())
print()

出力結果

長方形の長さは :
6
長方形の幅は :
45
長方形の面積 :
270

コードの解説

  • 「shape_rectangle」という名前のクラスを定義します。
  • このクラスには、値を初期化するための「__init__」メソッド(__init__はコンストラクタとも呼ばれます)が含まれています。インスタンス生成時に引数として渡された長さと幅が、それぞれself.lengthとself.breadthに格納されます。
  • また、指定されたパラメータをもとに長方形の面積を計算する「calculate_area」メソッドも定義されています。このメソッドは、lengthとbreadthを掛け合わせた結果を返します。
  • 次に、このクラスのインスタンスを作成します。ここでは、長さ6、幅45という値を引数として渡しています。
  • インスタンスから「calculate_area」メソッドを呼び出すことで、面積の計算が実行されます。
  • 最後に、計算結果である270がコンソールに出力されます。

ポイントまとめ

  • __init__メソッドは、インスタンス作成時に自動的に呼び出される特別なメソッドです。
  • selfキーワードを使うことで、各インスタンスが独自の属性値を持てるようになります。
  • 面積の計算式「長さ × 幅」をメソッドとしてカプセル化することで、ロジックの変更が必要になった場合もクラス内だけの修正で済みます。
  1. Pythonで行列の転置を求めるプログラム

    この記事では、与えられた問題に対する解法とアプローチについて詳しく解説します。 問題文 ある行列が与えられたとき、その転置を同じ行列に格納し、結果を表示する必要があります。 行列の転置とは、行を列に、列を行に入れ替えたものです。言い換えれば、行列Aの転置は、要素A[i][j]をA[j][i]と入れ替えることで得られます。 実装例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): A[i][j], A[j][i] = A[j][i], A[i][j] # ドライ

  2. Pythonで配列(リスト)の合計を求める方法をわかりやすく解説

    この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に