プログラミング上達のコツは学習初期段階でとにかく手を動かしてコーディングすることです。
本シリーズでは Python の初学者に向けたコーディング問題を出題します。
今回は whileループ break文 continue文 ループとelse文 を学習します。コーディング指示に従ってコーディングしてみましょう!
学習の進め方-
- プログラム説明および目的を確認し、どのようなプログラムで何を学ぶかイメージしましょう。
- コーディング指示に従ってコーディングをします。
もし分からなければ、コード例を確認しても良いです。 - 自分の出力結果と出力結果例を比較してみましょう。
- コード例を確認し、自分のコードと比較してみましょう。
コード例は「あくまでも例」なので完全に一致する必要はありません。 - 最終的にはコーディング指示だけでコーディングできるよう、繰り返し練習しましょう。
Python コーディング問題 1:家事のチェックリスト
プログラム説明
ユーザーに家事の項目数を入力させ、その回数だけ家事を完了したことを表示するプログラムを作成します。
コーディング指示
新しい Python ファイル num_tasks.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
num_tasks.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「今日の家事の項目数」を尋ね、その数値を
num_tasks
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 - 変数
counter
を 0 に初期化します。これはループカウンタとして使用します。 while
ループを使って、counter
がnum_tasks
未満の間、次の処理を繰り返します。print
関数を使って、「家事 x 項目目を完了しました!」というメッセージを表示します。x はcounter + 1
の値です。counter
の値を 1 増やします。
出力結果例
タップして出力結果例を表示
今日の家事の項目数を入力してください: 5
家事 1 項目目を完了しました!
家事 2 項目目を完了しました!
家事 3 項目目を完了しました!
家事 4 項目目を完了しました!
家事 5 項目目を完了しました!
Python コード例
タップしてコード例を表示
# ユーザーに今日の家事の項目数を入力してもらう
num_tasks = int(input("今日の家事の項目数を入力してください: "))
# ループカウンタを0で初期化
counter = 0
# ループカウンタが家事の項目数未満の間、ループを実行
while counter < num_tasks:
# 家事の完了メッセージを表示
print(f"家事 {counter + 1} 項目目を完了しました!")
# ループカウンタを1増やす
counter += 1
Python コーディング問題 2:貯金計画
プログラム説明
ユーザーに現在の貯金額、目標貯金額、毎月の貯金額を入力させ、目標額に達するまでの貯金の進捗を表示するプログラムを作成します。
コーディング指示
新しい Python ファイル savings_simulator.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
savings_simulator.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「現在の貯金額」を尋ね、その数値を
current_savings
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 - ユーザーに「目標貯金額」を尋ね、その数値を
savings_goal
という変数に代入します。同様にint
関数を使います。 - ユーザーに「毎月の貯金額」を尋ね、その数値を
monthly_saving
という変数に代入します。同様にint
関数を使います。 - 変数
months
を 0 に初期化します。これは月数をカウントするために使います。 while
ループを使って、current_savings
がsavings_goal
未満の間、次の処理を繰り返します。current_savings
にmonthly_saving
を加算します。months
の値を 1 増やします。print
関数を使って、「x ヶ月目の貯金額: y 円」というメッセージを表示します。x はmonths
、y はcurrent_savings
の値です。
- ループが終了したら、「目標額に達しました!」というメッセージを表示します。
出力結果例
タップして出力結果例を表示
現在の貯金額を入力してください: 100000
目標貯金額を入力してください: 500000
毎月の貯金額を入力してください: 50000
1 ヶ月目の貯金額: 150000 円
2 ヶ月目の貯金額: 200000 円
3 ヶ月目の貯金額: 250000 円
4 ヶ月目の貯金額: 300000 円
5 ヶ月目の貯金額: 350000 円
6 ヶ月目の貯金額: 400000 円
7 ヶ月目の貯金額: 450000 円
8 ヶ月目の貯金額: 500000 円
目標額に達しました!
Python コード例
タップしてコード例を表示
# ユーザーに現在の貯金額を入力してもらう
current_savings = int(input("現在の貯金額を入力してください: "))
# ユーザーに目標貯金額を入力してもらう
savings_goal = int(input("目標貯金額を入力してください: "))
# ユーザーに毎月の貯金額を入力してもらう
monthly_saving = int(input("毎月の貯金額を入力してください: "))
# 月数カウンタを0で初期化
months = 0
# 現在の貯金額が目標貯金額未満の間、ループを実行
while current_savings < savings_goal:
# 現在の貯金額に毎月の貯金額を加算
current_savings += monthly_saving
# 月数カウンタを1増やす
months += 1
# 貯金の進捗を表示
print(f"{months} ヶ月目の貯金額: {current_savings} 円")
# 目標額に達したらメッセージを表示
print("目標額に達しました!")
Python コーディング問題 3:読書の進捗
プログラム説明
ユーザーに読みたい本の総ページ数と休憩するページ数を入力させ、指定のページ数に到達したら休憩するプログラムを作成します。
コーディング指示
新しい Python ファイル reading_progress_with_break.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
reading_progress_with_break.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「本の総ページ数」を尋ね、その数値を
total_pages
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 - ユーザーに「休憩するページ数」を尋ね、その数値を
break_page
という変数に代入します。同様にint
関数を使います。 for
ループを使って、1からtotal_pages
までのページ数を繰り返します。print
関数を使って、「x ページ目を読みました」というメッセージを表示します。x は現在のページ数です。if
文を使って、現在のページ数がbreak_page
と等しいかをチェックします。等しい場合は「休憩します」というメッセージを表示し、break
文でループを終了します。
出力結果例
タップして出力結果例を表示
本の総ページ数を入力してください: 30
休憩するページ数を入力してください: 10
読書を開始します
1 ページ目を読みました
2 ページ目を読みました
3 ページ目を読みました
4 ページ目を読みました
5 ページ目を読みました
6 ページ目を読みました
7 ページ目を読みました
8 ページ目を読みました
9 ページ目を読みました
10 ページ目を読みました
休憩します。
Python コード例
タップしてコード例を表示
# ユーザーに本の総ページ数を入力してもらう
total_pages = int(input("本の総ページ数を入力してください: "))
# ユーザーに休憩するページ数を入力してもらう
break_page = int(input("休憩するページ数を入力してください: "))
# 読書の開始を通知
print("読書を開始します")
# 1ページ目から総ページ数までループを実行
for p in range(1, total_pages + 1):
# 読んだページ数を表示
print(f"{p} ページ目を読みました")
# 現在のページ数が休憩するページ数と等しい場合、休憩を通知しループを終了
if p == break_page:
print("休憩します。")
break
Python コーディング問題 4:健康習慣の記録
プログラム説明
ユーザーに1週間の健康習慣(例: 水を飲む回数)を記録する際に、特定の日をスキップするプログラムを作成します。
コーディング指示
新しい Python ファイル weekly_health_logger.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
weekly_health_logger.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「スキップする日(1-7)」を尋ね、その数値を
skip_day
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 for
ループを使って、1から7日間を繰り返します。if
文を使って、現在の日がskip_day
と等しいかをチェックします。等しい場合はcontinue
文を使ってループを次の反復に進めます。print
関数を使って、「今日は x 日目。水を飲みました!」というメッセージを表示します。x は現在の日数です。
出力結果例
タップして出力結果例を表示
スキップする日を入力してください (1-7): 3
1週間の健康習慣を記録します
今日は 1 日目。水を飲みました!
今日は 2 日目。水を飲みました!
今日は 4 日目。水を飲みました!
今日は 5 日目。水を飲みました!
今日は 6 日目。水を飲みました!
今日は 7 日目。水を飲みました!
Python コード例
タップしてコード例を表示
# ユーザーにスキップする日を入力してもらう
skip_day = int(input("スキップする日を入力してください (1-7): "))
# 1週間の健康習慣の記録を通知
print("1週間の健康習慣を記録します")
# 1日目から7日目までループを実行
for day in range(1, 8):
# 現在の日がスキップする日と等しい場合、次の反復に進む
if day == skip_day:
continue
# 健康習慣の記録を表示
print(f"今日は {day} 日目。水を飲みました!")
Python コーディング問題 5:勉強の進捗
プログラム説明
ユーザーに勉強する日数を入力させ、その日数だけ勉強を行い、終了後にメッセージを表示するプログラムを作成します。
コーディング指示
新しい Python ファイル study_days_logger.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
study_days_logger.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「勉強する日数」を尋ね、その数値を
study_days
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 for
ループを使って、0からstudy_days
– 1までの日数を繰り返します。print
関数を使って、「x 日目の勉強が完了しました」というメッセージを表示します。x は現在の日数 + 1 です。
- ループが正常に終了した場合、
else
節を使って、「勉強が終了しました!お疲れ様でした。」というメッセージを表示します。
出力結果例
タップして出力結果例を表示
勉強する日数を入力してください: 3
1 日目の勉強が完了しました。
2 日目の勉強が完了しました。
3 日目の勉強が完了しました。
勉強が終了しました!お疲れ様でした。
Python コード例
タップしてコード例を表示
# ユーザーに勉強する日数を入力してもらう
study_days = int(input("勉強する日数を入力してください: "))
# 0日目から勉強する日数-1日目までループを実行
for day in range(study_days):
# 勉強の進捗を表示
print(f"{day + 1} 日目の勉強が完了しました。")
# ループが正常に終了した場合、メッセージを表示
else:
print("勉強が終了しました!お疲れ様でした。")
Python コーディング問題 6:プロジェクトの進捗管理
プログラム説明
ユーザーにプロジェクトの期間(日数)と途中で終了する日を入力させ、その条件でプログラムを実行します。
コーディング指示
新しい Python ファイル project_progress_tracker.py
を作成する
- 任意のエディタを開き、新しいファイルを作成します。
- ファイル名を
project_progress_tracker.py
として保存します。
以下の手順に従ってプログラムを作成してください。
- ユーザーに「プロジェクトの期間(日数)」を尋ね、その数値を
project_days
という変数に代入します。入力にはinput
関数を使い、整数値に変換するためにint
関数を使います。 - ユーザーに「途中で終了する日」を尋ね、その数値を
stop_day
という変数に代入します。同様にint
関数を使います。 for
ループを使って、0からproject_days
– 1までの日数を繰り返します。print
関数を使って、「x 日目のプロジェクト作業を完了しました」というメッセージを表示します。x は現在の日数 + 1 です。if
文を使って、現在の日数 + 1 がstop_day
と等しいかをチェックします。等しい場合は「プロジェクトを途中で終了します」というメッセージを表示し、break
文でループを終了します。
- ループが正常に終了した場合、
else
節を使って、「プロジェクト期間が終了しました!お疲れ様でした。」というメッセージを表示します。
出力結果例
タップして出力結果例を表示
プロジェクトの期間(日数)を入力してください: 5
途中で終了する日を入力してください: 4
1 日目のプロジェクト作業を完了しました。
2 日目のプロジェクト作業を完了しました。
3 日目のプロジェクト作業を完了しました。
4 日目のプロジェクト作業を完了しました。
プロジェクトを途中で終了します。
Python コード例
タップしてコード例を表示
# ユーザーにプロジェクトの期間を入力してもらう
project_days = int(input("プロジェクトの期間(日数)を入力してください: "))
# ユーザーに途中で終了する日を入力してもらう
stop_day = int(input("途中で終了する日を入力してください: "))
# 0日目からプロジェクトの期間-1日目までループを実行
for day in range(project_days):
# プロジェクトの進捗を表示
print(f"{day + 1} 日目のプロジェクト作業を完了しました。")
# 現在の日数+1が途中で終了する日と等しい場合、通知しループを終了
if day + 1 == stop_day:
print("プロジェクトを途中で終了します。")
break
# ループが正常に終了した場合、メッセージを表示
else:
print("プロジェクト期間が終了しました!お疲れ様でした。")
コメント