プログラミング上達のコツは学習初期段階でとにかく手を動かしてコーディングすることです。
本シリーズでは Python の初学者に向けたコーディング問題を出題します。
今回は リストの基本操作、ループ処理、変更・追加・削除 を学習します。コーディング指示に従ってコーディングしてみましょう!
学習の進め方
- プログラム説明および目的を確認し、どのようなプログラムで何を学ぶかイメージしましょう。
- コーディング指示に従ってコーディングをします。
もし分からなければ、コード例を確認しても良いです。 - 自分の出力結果と出力結果例を比較してみましょう。
- コード例を確認し、自分のコードと比較してみましょう。
コード例は「あくまでも例」なので完全に一致する必要はありません。 - 最終的にはコーディング指示だけでコーディングできるよう、繰り返し練習しましょう。
Python コーディング問題 1:旅行の計画
プログラム説明
旅行の計画を立てるために、訪れたい都市のリストを作成し、そのリストを表示するプログラムを作成します。
コーディング指示
新しい Python ファイル travel_plan.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
travel_plan.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- 空のリスト
cities
を角括弧[]
を使って作成し、print
関数で表示します。 - 空のリスト
cities2
をlist()
を使って作成し、print
関数で表示します。 - 訪れたい都市をリスト
cities
に["Tokyo", "Kyoto", "Osaka", "Hiroshima", "Fukuoka"]
で追加し、print
関数で表示します。 cities
の各都市にインデックスを使ってアクセスし、print
関数でそれぞれの都市を表示します。cities
の範囲外のインデックスにアクセスしてエラーを確認します。
出力結果例
タップして出力結果例を表示
[]
[]
[‘Tokyo’, ‘Kyoto’, ‘Osaka’, ‘Hiroshima’, ‘Fukuoka’]
Tokyo
Kyoto
Osaka
Hiroshima
Fukuoka
Python コード例
タップしてコード例を表示
# 空のリストを角括弧[]で作成
cities = []
print(cities)
# 空のリストをlist()で作成
cities2 = list()
print(cities2)
# 訪れたい都市をリストに追加
cities = ["Tokyo", "Kyoto", "Osaka", "Hiroshima", "Fukuoka"]
print(cities)
# リストの各都市にアクセスして表示
print(cities[0])
print(cities[1])
print(cities[2])
print(cities[3])
print(cities[4])
# リストの範囲外にアクセスしてエラーを確認
#print(cities[5]) # ここでエラーが発生します
Python コーディング問題 2:毎日の計画
プログラム説明
毎日の予定をリストに保存し、for 文と while 文を使って予定をループで表示するプログラムを作成します。
コーディング指示
新しい Python ファイル daily_schedule.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
daily_schedule.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- 新しいPythonファイル
daily_schedule.py
を作成します。 - リスト
schedule
を["Breakfast", "Work", "Lunch", "Meeting", "Gym", "Dinner", "Sleep"]
で作成します。 for
文を使ってリストの各予定を取り出し、print
関数で表示します。while
文を使ってリストの各予定をインデックスを使って取り出し、print
関数で表示します。
出力結果例
タップして出力結果例を表示
== for ==
Breakfast
Work
Lunch
Meeting
Gym
Dinner
Sleep
== while ==
Breakfast
Work
Lunch
Meeting
Gym
Dinner
Sleep
Python コード例
タップしてコード例を表示
# リストを作成
schedule = ["Breakfast", "Work", "Lunch", "Meeting", "Gym", "Dinner", "Sleep"]
# for文を使ってリストの各予定を表示
print("== for ==")
for activity in schedule:
print(activity)
# while文を使ってリストの各予定を表示
print("== while ==")
i = 0
while i < len(schedule):
print(schedule[i])
i += 1
Python コーディング問題 3:買い物リストの管理
プログラム説明
買い物リストを作成し、リストの要素の変更、追加、削除を行うプログラムを作成します。
コーディング指示
新しい Python ファイルshopping_list.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
shopping_list.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- リスト
shopping_list
を["Milk", "Bread", "Eggs", "Butter", "Cheese"]
で作成し、print
関数で表示します。 - インデックス
2
の要素をAlmond Milk
に変更し、print
関数で表示します。 - リストの末尾に
Honey
を追加し、print
関数で表示します。 - インデックス
3
にJam
を挿入し、print
関数で表示します。 - インデックス
4
の要素を削除し、print
関数で表示します。
出力結果例
タップして出力結果例を表示
[‘Milk’, ‘Bread’, ‘Eggs’, ‘Butter’, ‘Cheese’]
[‘Milk’, ‘Bread’, ‘Almond Milk’, ‘Butter’, ‘Cheese’]
[‘Milk’, ‘Bread’, ‘Almond Milk’, ‘Butter’, ‘Cheese’, ‘Honey’]
[‘Milk’, ‘Bread’, ‘Almond Milk’, ‘Jam’, ‘Butter’, ‘Cheese’, ‘Honey’]
[‘Milk’, ‘Bread’, ‘Almond Milk’, ‘Jam’, ‘Cheese’, ‘Honey’]
[‘Milk’, ‘Bread’, ‘Almond Milk’, ‘Jam’, ‘Honey’]
Python コード例
タップしてコード例を表示
# リストを作成
shopping_list = ["Milk", "Bread", "Eggs", "Butter", "Cheese"]
print(shopping_list)
# インデックス2の要素を変更
shopping_list[2] = "Almond Milk"
print(shopping_list)
# リストの末尾に要素を追加
shopping_list.append("Honey")
print(shopping_list)
# インデックス3に要素を挿入
shopping_list.insert(3, "Jam")
print(shopping_list)
# インデックス4の要素を削除
del shopping_list[4]
print(shopping_list)
# 値Butterの要素を削除
shopping_list.remove("Cheese")
print(shopping_list)
Python コーディング問題 4:学習計画の管理
プログラム説明
学習計画を管理するために、リストの全要素を削除する操作とリスト自体を削除する操作を確認するプログラムを作成します
コーディング指示
新しい Python ファイル study_plan.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
study_plan.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- リスト
study_plan
を["Math", "Science", "History", "English", "Art"]
で作成し、print
関数で表示します。 study_plan
リストの全要素を削除し、print
関数で表示します。- 再度リスト
study_plan
を["Math", "Science", "History", "English", "Art"]
で作成し、study_plan
リスト自体を削除します。 study_plan
リストを表示してエラーを確認します。
出力結果例
タップして出力結果例を表示
[]
Python コード例
タップしてコード例を表示
# リストを作成
study_plan = ["Math", "Science", "History", "English", "Art"]
# リストの全要素を削除
study_plan.clear()
print(study_plan)
# 再度リストを作成
study_plan = ["Math", "Science", "History", "English", "Art"]
# リスト自体を削除
del study_plan
# リストを表示してエラーを確認
print(study_plan) # ここでエラーが発生します
Python コーディング問題 5:趣味リストの比較とコピー
プログラム説明
趣味リストの比較、値コピーと参照コピーを行い、各操作の違いを確認するプログラムを作成します。
コーディング指示
新しい Python ファイル hobbies_comparison_and_copy.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
hobbies_comparison_and_copy.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- リスト
original_hobbies
を作成する - リストの値コピーを行う
original_hobbies.copy()
を使ってリストcopied_hobbies
を作成します。
- リストの参照コピーを行う
original_hobbies
を使ってリストreference_hobbies
を作成します。
- リストの値比較を行い、結果を表示する
==
演算子を使ってoriginal_hobbies
とcopied_hobbies
の値比較を行い、結果を表示します。==
演算子を使ってoriginal_hobbies
とreference_hobbies
の値比較を行い、結果を表示します。
- メモリアドレスを表示する
id
関数を使ってoriginal_hobbies
とcopied_hobbies
のメモリアドレスを表示します。id
関数を使ってoriginal_hobbies
とreference_hobbies
のメモリアドレスを表示します。
- アドレス比較を行い、結果を表示する
is
演算子を使ってoriginal_hobbies
とcopied_hobbies
のアドレス比較を行い、結果を表示します。is
演算子を使ってoriginal_hobbies
とreference_hobbies
のアドレス比較を行い、結果を表示します。
- リストの変更を行う
original_hobbies
の3番目の要素をHiking
に変更します。
- 変更後の各リストを表示する
original_hobbies
の3番目の要素をHiking
に変更します。
- 変更後の各リストを表示する
- original_hobbies, copied_hobbies, reference_hobbies の内容を表示します。
出力結果例
タップして出力結果例を表示
値比較 (original_hobbies と copied_hobbies): True
値比較 (original_hobbies と reference_hobbies): True
メモリアドレス (original_hobbies): 2133796460800
メモリアドレス (copied_hobbies): 2133796458880
メモリアドレス (reference_hobbies): 2133796460800
アドレス比較 (original_hobbies と copied_hobbies): False
アドレス比較 (original_hobbies と reference_hobbies): True
変更前のリスト:
original_hobbies: [‘Reading’, ‘Traveling’, ‘Gardening’, ‘Cooking’]
copied_hobbies: [‘Reading’, ‘Traveling’, ‘Gardening’, ‘Cooking’]
reference_hobbies: [‘Reading’, ‘Traveling’, ‘Gardening’, ‘Cooking’]
変更後のリスト:
original_hobbies: [‘Reading’, ‘Traveling’, ‘Hiking’, ‘Cooking’]
copied_hobbies: [‘Reading’, ‘Traveling’, ‘Gardening’, ‘Cooking’]
reference_hobbies: [‘Reading’, ‘Traveling’, ‘Hiking’, ‘Cooking’]
Python コード例
タップしてコード例を表示
# 趣味リストを作成
original_hobbies = ["Reading", "Traveling", "Gardening", "Cooking"]
# リストの値をコピー
copied_hobbies = original_hobbies.copy()
# リストの参照をコピー
reference_hobbies = original_hobbies
# 値比較を行い結果を表示
print("値比較 (original_hobbies と copied_hobbies):", original_hobbies == copied_hobbies)
print("値比較 (original_hobbies と reference_hobbies):", original_hobbies == reference_hobbies)
# メモリアドレスを表示
print("メモリアドレス (original_hobbies):", id(original_hobbies))
print("メモリアドレス (copied_hobbies):", id(copied_hobbies))
print("メモリアドレス (reference_hobbies):", id(reference_hobbies))
# アドレス比較を行い結果を表示
print("アドレス比較 (original_hobbies と copied_hobbies):", original_hobbies is copied_hobbies)
print("アドレス比較 (original_hobbies と reference_hobbies):", original_hobbies is reference_hobbies)
# リストの変更前を表示
print("変更前のリスト:")
print("original_hobbies:", original_hobbies)
print("copied_hobbies:", copied_hobbies)
print("reference_hobbies:", reference_hobbies)
# original_hobbiesの3番目の要素を変更
original_hobbies[2] = "Hiking"
# 変更後の各リストを表示
print("変更後のリスト:")
print("original_hobbies:", original_hobbies)
print("copied_hobbies:", copied_hobbies)
print("reference_hobbies:", reference_hobbies)
コメント