Python | 「ユーザーの入力(input)」と if / else を組み合わせた小さな実践アプリ

Python
スポンサーリンク

ここでは、「ループ + if + 関数化」を組み合わせて、再利用しやすい形に整理したサンプルを作りましょう。


目標

ユーザーから入力を受け取り、

  • 正しい形式でなければ再入力させる(ループ)
  • 条件分岐で判定(if文)
  • 処理を関数としてまとめる(関数化)

→ 「年齢判定アプリ」を例にします。


完成コード例

def get_age():
    """年齢を入力させて、正しい整数が入力されるまで繰り返す"""
    while True:
        age_str = input("あなたの年齢を入力してください:")
        if age_str.isdigit():  # 数字だけで構成されているか確認
            return int(age_str)
        else:
            print("❌ 数字で入力してください。もう一度お願いします。")


def judge_age(age):
    """年齢に応じてメッセージを返す"""
    if age < 13:
        return "子どもですね!"
    elif age < 20:
        return "ティーンですね!"
    elif age < 65:
        return "大人ですね!"
    else:
        return "シニアの方ですね!"


def main():
    """メイン処理"""
    print("=== 年齢判定アプリ ===")
    age = get_age()         # 入力取得(ループ付き)
    message = judge_age(age)  # 判定関数呼び出し
    print(f"結果:{message}")


# 実行
if __name__ == "__main__":
    main()
Python

実行例

=== 年齢判定アプリ ===
あなたの年齢を入力してください:abc
❌ 数字で入力してください。もう一度お願いします。
あなたの年齢を入力してください:20
結果:大人ですね!

解説(ステップごとに)

ステップ内容ポイント
get_age()年齢を入力。数字以外なら再入力を促すwhile True: + isdigit() がポイント
judge_age()入力された年齢を条件分岐で判定if / elif / else の使い方を整理
main()全体の流れを整理処理の見通しが良くなり、再利用もしやすい
if __name__ == "__main__":スクリプトとして実行時のみ main() を動かす他のスクリプトからも呼び出しやすい構造

応用課題

  1. 成績判定バージョン
    • 点数(0〜100)を入力
    • 範囲外の値なら再入力
    • A〜D評価を表示
  2. 再利用の練習
    • get_number(prompt, min_value, max_value) のように関数化して
      どんな入力チェックにも使えるようにしてみましょう。
タイトルとURLをコピーしました