プログラミング上達のコツは学習初期段階でとにかく手を動かしてコーディングすることです。
本シリーズでは Python の初学者に向けたコーディング問題を出題します。
今回は タプルとセットの基本と利用 を学習します。コーディング指示に従ってコーディングしてみましょう!
学習の進め方
- プログラム説明および目的を確認し、どのようなプログラムで何を学ぶかイメージしましょう。
- コーディング指示に従ってコーディングをします。
もし分からなければ、コード例を確認しても良いです。 - 自分の出力結果と出力結果例を比較してみましょう。
- コード例を確認し、自分のコードと比較してみましょう。
コード例は「あくまでも例」なので完全に一致する必要はありません。 - 最終的にはコーディング指示だけでコーディングできるよう、繰り返し練習しましょう。
Python コーディング問題 1:家計簿の管理
プログラム説明
家計簿を管理するために、タプルを利用して支出を記録し、各カテゴリの合計を計算するプログラムを作成します。
コーディング指示
新しい Python ファイル num_tasks.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
num_tasks.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- 支出のカテゴリと金額を格納するタプル
expenses
を作成するexpenses = (("Groceries", 20000),("Utilities", 15000),("Rent", 80000),("Transportation", 10000),("Entertainment", 5000),("Miscellaneous", 3000))
- 各カテゴリの支出を表示する
for
文を使ってexpenses
の各カテゴリの支出を表示します。- カテゴリ名と支出額はそれぞれ
category
とamount
という変数にアンパック代入します。 - 各カテゴリの支出は
print
関数を使用して表示します。
- 全支出の合計を計算して表示する
- 全支出の合計を計算し、その結果を表示します。
- 合計支出は
total_expense
という変数を使用して計算します。 for
文で支出額だけを利用するために、カテゴリ名は_
という変数に代入します。これは、変数_
が実際には使用されないことを示すための慣習です。- 合計支出も
print
関数を使用して表示します。
出力結果例
タップして出力結果例を表示
各カテゴリの支出:
Groceries: ¥20,000
Utilities: ¥15,000
Rent: ¥80,000
Transportation: ¥10,000
Entertainment: ¥5,000
Miscellaneous: ¥3,000
全支出の合計: ¥133,000
Python コード例
タップしてコード例を表示
# 支出のカテゴリと金額を格納するタプルを作成
expenses = (
("Groceries", 20000), # 食料品
("Utilities", 15000), # 公共料金
("Rent", 80000), # 家賃
("Transportation", 10000), # 交通費
("Entertainment", 5000), # 娯楽
("Miscellaneous", 3000) # その他
)
# 各カテゴリの支出を表示
print("各カテゴリの支出:")
for category, amount in expenses:
print(f"{category}: ¥{amount:,}")
# 全支出の合計を計算して表示
total_expense = 0
for _, amount in expenses:
total_expense += amount
print(f"\n全支出の合計: ¥{total_expense:,}")
# 注釈:
# 'for _, amount in expenses' の部分で、'_' は実際には使用されない変数を示します。
# ここではカテゴリ名が使用されず、金額(amount)だけが使用されるため、このように記述しています。
Python コーディング問題 2:旅行計画の管理
プログラム説明
旅行計画の管理のために、都市、国、観光名所の情報をまとめ、特定の都市の詳細を表示するプログラムを作成します。
コーディング指示
新しい Python ファイル travel_plan.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
travel_plan.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- リスト
cities
,countries
,attractions
を作成するcities
という変数にリスト["Tokyo", "Paris", "New York", "London", "Sydney"]
を代入します。countries
という変数にリスト["Japan", "France", "USA", "UK", "Australia"]
を代入します。attractions
という変数にリスト["Tokyo Tower", "Eiffel Tower", "Statue of Liberty", "London Eye", "Sydney Opera House"]
を代入します。
zip
関数を使ってタプルを作成し、各都市の詳細を表示するzip
関数を使用して、cities
,countries
,attractions
の要素を結合し、travel_plans
という変数にタプルとして格納します。for
ループを使って各都市の詳細を表示します。
- 特定の都市の詳細を表示する
- ユーザーに特定の都市の名前を入力させ、その都市の詳細を表示します。都市が見つからない場合、エラーメッセージを表示します。
enumerate
関数を使って都市の一覧を表示する- enumerate関数を使用して、各都市のインデックスと名前を表示します。
出力結果例
タップして出力結果例を表示
旅行計画の詳細:
Tokyo, Japan: Tokyo Tower
Paris, France: Eiffel Tower
New York, USA: Statue of Liberty
London, UK: London Eye
Sydney, Australia: Sydney Opera House
詳細を表示したい都市の名前を入力してください: Tokyo
Tokyoの詳細:
国: Japan
観光名所: Tokyo Tower
enumerate関数を使った都市の名前:
0: Tokyo
1: Paris
2: New York
3: London
4: Sydney
Python コード例
タップしてコード例を表示
# 複数のリストを作成
cities = ["Tokyo", "Paris", "New York", "London", "Sydney"]
countries = ["Japan", "France", "USA", "UK", "Australia"]
attractions = ["Tokyo Tower", "Eiffel Tower", "Statue of Liberty", "London Eye", "Sydney Opera House"]
# zip関数を使って旅行計画をタプルに結合
travel_plans = tuple(zip(cities, countries, attractions))
# 各旅行計画の詳細を表示
print("旅行計画の詳細:")
for city, country, attraction in travel_plans:
print(f"{city}, {country}: {attraction}")
# 特定の都市の詳細を表示
city_name = input("\n詳細を表示したい都市の名前を入力してください: ")
# 都市の詳細を探して表示
for city, country, attraction in travel_plans:
if city.lower() == city_name.lower():
print(f"\n{city}の詳細:\n国: {country}\n観光名所: {attraction}")
break
else:
# ループが完了してもbreakが呼び出されなかった場合に実行
print(f"\n{city_name}という都市は見つかりませんでした。")
# enumerate関数を使って都市の情報をインデックスと共に表示
print("\nenumerate関数を使った都市の名前:")
for index, city in enumerate(cities):
print(f"{index}: {city}")
Python コーディング問題 3:クラブメンバーの管理
プログラム説明
クラブメンバーのリストを管理するために、セットの基本操作、セットの数学的演算(和集合、積集合、差集合、対称差)、および要素の追加・削除を利用するプログラムを作成します。
コーディング指示
新しい Python ファイル club_member_management.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
club_member_management.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- セット
members
を作成する- members という変数にセット {“John”, “Alice”, “Bob”, “Diana”} を代入します。
- セットに新しいメンバーを追加する
members.add("Eve")
を使ってEve
をセットに追加します。print
関数を使用してmembers
を表示します。
- セットからメンバーを削除する
members.remove("Alice")
を使ってAlice
をセットから削除します。print
関数を使用してmembers
を表示します。
- 別のセット
new_members
を作成するnew_members
という変数にセット{"Frank", "Diana", "Grace"}
を代入します。
- セットの和集合を計算して表示する
members.union(new_members)
またはmembers | new_members
を使用して和集合を計算し、結果をall_members
に代入します。print
関数を使用してall_members
を表示します。
- セットの積集合を計算して表示する
members.intersection(new_members)
またはmembers & new_members
を使用して積集合を計算し、結果をcommon_members
に代入します。print
関数を使用してcommon_members
を表示します。
- セットの差集合を計算して表示する
members.difference(new_members)
またはmembers - new_members
を使用して差集合を計算し、結果をexclusive_members
に代入します。print
関数を使用してexclusive_members
を表示します。
- セットの対称差を計算して表示する
出力結果例
タップして出力結果例を表示
(セットを利用しているため、表示される順番は異なることがあります)
メンバー追加後:
{‘Eve’, ‘John’, ‘Diana’, ‘Bob’, ‘Alice’}
メンバー削除後:
{‘Eve’, ‘John’, ‘Diana’, ‘Bob’}
和集合:
{‘Frank’, ‘Grace’, ‘Diana’, ‘Eve’, ‘Bob’, ‘John’}
積集合:
{‘Diana’}
差集合:
{‘Bob’, ‘Eve’, ‘John’}
対称差:
{‘Eve’, ‘John’, ‘Frank’, ‘Grace’, ‘Bob’}
Python コード例
タップしてコード例を表示
# クラブメンバーのセットを作成
members = {"John", "Alice", "Bob", "Diana"}
# 新しいメンバーを追加
members.add("Eve")
print("メンバー追加後:")
print(members)
# メンバーを削除
members.remove("Alice")
print("メンバー削除後:")
print(members)
# 新しいセットを作成
new_members = {"Frank", "Diana", "Grace"}
# 和集合を計算して表示
all_members = members.union(new_members)
print("和集合:")
print(all_members)
# 積集合を計算して表示
common_members = members.intersection(new_members)
print("積集合:")
print(common_members)
# 差集合を計算して表示
exclusive_members = members.difference(new_members)
print("差集合:")
print(exclusive_members)
# 対称差を計算して表示
symmetric_difference_members = members.symmetric_difference(new_members)
print("対称差:")
print(symmetric_difference_members)
コメント