プログラミング上達のコツは学習初期段階でとにかく手を動かしてコーディングすることです。
本シリーズでは Python の初学者に向けたコーディング問題を出題します。
今回から クラスの定義と利用方法 について学習します。コーディング指示に従ってコーディングしてみましょう!
学習の進め方
- プログラム説明および目的を確認し、どのようなプログラムで何を学ぶかイメージしましょう。
- コーディング指示に従ってコーディングをします。
もし分からなければ、コード例を確認しても良いです。 - 自分の出力結果と出力結果例を比較してみましょう。
- コード例を確認し、自分のコードと比較してみましょう。
コード例は「あくまでも例」なので完全に一致する必要はありません。 - 最終的にはコーディング指示だけでコーディングできるよう、繰り返し練習しましょう。
Python コーディング問題1: 学生情報管理システム
プログラム説明
このプログラムは、学生の基本情報を管理します。ユーザーは学生の名前、学年、専攻を入力し、各学生の情報を表示します。
目的
このプログラムを通じて、学習者はクラスの基本的な定義方法、パスカルケースおよびスネークケースの命名規則、メソッドの定義と利用方法を学びます。
コーディング指示
新しいPythonファイル student_info.py を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
student_info.py
として保存します。
学生を表現するStudent
クラスを定義する
Student
クラスを作成し、以下のメソッドを定義します:print_name
メソッド:学生の名前を表示します。print_grade
メソッド:学生の学年を表示します。print_major
メソッド:学生の専攻を表示します。
メインプログラムを作成する
- 学生のインスタンスを作成し、名前、学年、専攻をユーザーから入力させます。
- 入力された情報を基に各メソッドを呼び出して表示します。
Python コード例
タップしてコード例を表示
class Student:
"""学生情報を管理するクラス"""
# 学生の名前を表示するメソッド
def print_name(self):
print(f"名前: {self.name}")
# 学生の学年を表示するメソッド
def print_grade(self):
print(f"学年: {self.grade}")
# 学生の専攻を表示するメソッド
def print_major(self):
print(f"専攻: {self.major}")
# メインプログラム
student1 = Student()
student1.name = input("学生の名前を入力してください: ")
student1.grade = input("学生の学年を入力してください: ")
student1.major = input("学生の専攻を入力してください: ")
# 学生の情報を表示
student1.print_name()
student1.print_grade()
student1.print_major()
Python コーディング問題2: 製品情報管理システム
プログラム説明
このプログラムは、製品の基本情報を管理します。ユーザーは製品の名前、価格、在庫数を入力し、各製品の情報を表示します。
目的
このプログラムを通じて、学習者はクラスの基本的な定義方法、パスカルケースおよびスネークケースの命名規則、メソッドの定義と利用方法を学びます。
コーディング指示
新しい Python ファイル product_info.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
product_info.py
として保存します。
製品を表現する Product
クラスを定義する
Product
クラスを作成し、以下のメソッドを定義しますprint_name
メソッド: 製品の名前を表示します。print_price
メソッド: 製品の価格を表示します。print_stock
メソッド: 製品の在庫数を表示します。
メインプログラムを作成する
- 製品のインスタンスを作成し、名前、価格、在庫数をユーザから入力させます。
- 入力させた情報を基に各メソッドを呼び出して表示します。
Python コード例
class Product:
"""製品情報を管理するクラス"""
# 製品の名前を表示するメソッド
def print_name(self):
print(f"製品名: {self.name}")
# 製品の価格を表示するメソッド
def print_price(self):
print(f"価格: {self.price}円")
# 製品の在庫数を表示するメソッド
def print_stock(self):
print(f"在庫数: {self.stock}個")
# メインプログラム
product1 = Product()
product1.name = input("製品の名前を入力してください: ")
product1.price = int(input("製品の価格を入力してください: "))
product1.stock = int(input("製品の在庫数を入力してください: "))
# 製品の情報を表示
product1.print_name()
product1.print_price()
product1.print_stock()
Python コーディング問題3: 車両情報管理システム
プログラム説明
このプログラムは、複数の車両の基本情報を管理します。ユーザーは各車両のモデル名、製造年、価格を入力し、各車両の情報を表示します。
目的
このプログラムを通じて、学習者はクラスの基本的な定義方法、パスカルケースおよびスネークケースの命名規則、メソッドの定義と利用方法、リストを用いた複数のインスタンスの管理方法を学びます。
コーディング指示
新しい Python ファイル vehicles_info.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
vehicles_info.py
として保存します。
車両を表現する Vehicle
クラスを定義する
Vehicle
クラスを作成し、以下のメソッドを定義します:print_model
メソッド:車両のモデル名を表示します。print_year
メソッド:車両の製造年を表示します。print_price
メソッド:車両の価格を表示します。
メインプログラムを作成する
- 車両のインスタンスをリストに追加し、モデル名、製造年、価格をユーザーから入力させます。
- 入力された情報を基に各メソッドを呼び出して表示します。
Python コード例
class Vehicle:
"""車両情報を管理するクラス"""
# 車両のモデル名を表示するメソッド
def print_model(self):
print(f"モデル名: {self.model}")
# 車両の製造年を表示するメソッド
def print_year(self):
print(f"製造年: {self.year}")
# 車両の価格を表示するメソッド
def print_price(self):
print(f"価格: {self.price}円")
# メインプログラム
vehicles = [Vehicle(), Vehicle(), Vehicle()]
vehicles[0].model = input("1台目の車両のモデル名を入力してください: ")
vehicles[0].year = input("1台目の車両の製造年を入力してください: ")
vehicles[0].price = int(input("1台目の車両の価格を入力してください: "))
vehicles[1].model = input("2台目の車両のモデル名を入力してください: ")
vehicles[1].year = input("2台目の車両の製造年を入力してください: ")
vehicles[1].price = int(input("2台目の車両の価格を入力してください: "))
vehicles[2].model = input("3台目の車両のモデル名を入力してください: ")
vehicles[2].year = input("3台目の車両の製造年を入力してください: ")
vehicles[2].price = int(input("3台目の車両の価格を入力してください: "))
for vehicle in vehicles:
vehicle.print_model()
vehicle.print_year()
vehicle.print_price()
Python コーディング問題4: 料理レシピ情報管理システム
プログラム説明
このプログラムは、複数の料理レシピの基本情報を管理します。ユーザーは各料理の名前、主要材料、調理時間を入力し、各料理の情報を表示します。
目的
このプログラムを通じて、学習者はクラスの基本的な定義方法、パスカルケースおよびスネークケースの命名規則、メソッドの定義と利用方法、リストを用いた複数のインスタンスの管理方法を学びます。
コーディング指示
新しいPythonファイル recipes_info.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
recipes_info.py
として保存します。
料理レシピを表現する Recipe
クラスを定義する
Recipe
クラスを作成し、以下のメソッドを定義します:print_name
メソッド:料理の名前を表示します。print_main_ingredient
メソッド:料理の主要材料を表示します。print_cooking_time
メソッド:料理の調理時間を表示します。
メインプログラムを作成する
- 料理レシピのインスタンスをリストに追加し、名前、主要材料、調理時間をユーザーから入力させます。
- 入力された情報を基に各メソッドを呼び出して表示します。
Python コード例
class Recipe:
"""料理レシピ情報を管理するクラス"""
# 料理の名前を表示するメソッド
def print_name(self):
print(f"料理名: {self.name}")
# 料理の主要材料を表示するメソッド
def print_main_ingredient(self):
print(f"主要材料: {self.main_ingredient}")
# 料理の調理時間を表示するメソッド
def print_cooking_time(self):
print(f"調理時間: {self.cooking_time}分")
# メインプログラム
recipes = [Recipe(), Recipe(), Recipe()]
recipes[0].name = input("1つ目の料理の名前を入力してください: ")
recipes[0].main_ingredient = input("1つ目の料理の主要材料を入力してください: ")
recipes[0].cooking_time = int(input("1つ目の料理の調理時間を入力してください: "))
recipes[1].name = input("2つ目の料理の名前を入力してください: ")
recipes[1].main_ingredient = input("2つ目の料理の主要材料を入力してください: ")
recipes[1].cooking_time = int(input("2つ目の料理の調理時間を入力してください: "))
recipes[2].name = input("3つ目の料理の名前を入力してください: ")
recipes[2].main_ingredient = input("3つ目の料理の主要材料を入力してください: ")
recipes[2].cooking_time = int(input("3つ目の料理の調理時間を入力してください: "))
for recipe in recipes:
recipe.print_name()
recipe.print_main_ingredient()
recipe.print_cooking_time()
コメント