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

Python
スポンサーリンク

ここでは、ユーザー入力 → 判定 → 結果をCSVに保存 する
「成績判定アプリ(ループ付き・CSV保存)」の完全版サンプルを示します。


成績判定アプリ(CSV保存付き)

機能

  1. ユーザーが名前と点数を入力
  2. 点数に応じて成績を判定
  3. 入力ミス時は再入力
  4. 結果を scores.csv に保存
  5. 「終了」と入力すると終了

コード例

import csv

# CSVファイル名
FILENAME = "scores.csv"

# CSVのヘッダーを書き込む(ファイルが空のときだけ)
with open(FILENAME, mode="a", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    if f.tell() == 0:  # ファイルが空の場合のみヘッダー追加
        writer.writerow(["名前", "点数", "成績"])

print("=== 成績判定アプリ ===")
print("名前と点数を入力してください('終了'で終了)")

while True:
    name = input("名前: ")
    if name == "終了":
        print("入力を終了します。")
        break

    # 点数入力とバリデーション
    while True:
        score_str = input("点数(0〜100): ")
        if score_str.isdigit():
            score = int(score_str)
            if 0 <= score <= 100:
                break
        print("❌ 無効な入力です。0〜100の数値を入力してください。")

    # 成績判定
    if score >= 80:
        grade = "A"
    elif score >= 70:
        grade = "B"
    elif score >= 60:
        grade = "C"
    else:
        grade = "D"

    # 結果を表示
    print(f"{name}さんの成績は「{grade}」です。\n")

    # CSVに保存
    with open(FILENAME, mode="a", newline="", encoding="utf-8") as f:
        writer = csv.writer(f)
        writer.writerow([name, score, grade])

print(f"✅ 結果を {FILENAME} に保存しました。")
Python

解説(ステップごと)

ステップ内容説明
1import csvPythonの標準CSVライブラリを使う
2ファイル作成with open(..., "a") で追記モードにし、初回だけヘッダー行を作成
3名前入力'終了' と入力したら break でループを抜ける
4点数入力isdigit()で数字チェック、0〜100の範囲を確認
5成績判定if〜elif〜elseで判定(A〜D)
6CSV書き込みcsv.writer()で1行ずつ追記
7終了表示全ての入力が終わったらファイル保存完了メッセージ

出力例(scores.csv)

名前点数成績
田中85A
鈴木73B
山田58D

応用アイデア

  • 入力時間も一緒に保存(datetime を追加)
  • CSVを読み込んで平均点を表示する分析機能を追加
  • GUI版(PySimpleGUI)に拡張して、ボタンで保存
タイトルとURLをコピーしました