Python | 1 日 90 分 × 7 日アプリ学習:簡単メニュー選択アプリ(初級編)

Web APP Python
スポンサーリンク

3日目のゴール

3日目のテーマは
「メニューの“中身”を増やして、ちゃんと“道具っぽいアプリ”にすること」です。

ここまでであなたは、

数字でメニューを表示できる
番号に応じて関数を呼び分けられる
終了を選ぶまでメニューを繰り返せる

というところまで来ています。

今日はそこから一歩進んで、

ちょっと役に立つ機能をメニューに入れる
メニューの番号と“機能”を頭の中で整理する
「メニュー=機能の入り口」という感覚をつかむ

ここを目指します。


メニューは「機能の入り口の一覧」

メニューを“地図”として見る

メニューって、ただの文字の並びではなくて、
「このアプリにどんな機能があるかの地図」なんです。

例えば、こんなメニューを考えます。

1: あいさつする
2: 今日の目標を表示する
3: 簡単な足し算をする
0: 終了する

これを日本語で言い換えると、

1 → あいさつ機能の入り口
2 → 目標表示機能の入り口
3 → 足し算機能の入り口
0 → アプリ終了の入り口

ということです。

3日目では、
「メニューの番号 = 呼び出す関数 = 機能」
という対応を、はっきり意識してもらいます。


機能ごとの関数を用意する

1: あいさつ機能

def say_hello():
    print("こんにちは!Python 簡単メニューアプリです。")
Python

2: 今日の目標を表示する機能

def show_goal():
    print("今日の目標:")
    print("・メニューの中身(機能)を増やす")
    print("・番号と関数の対応を意識する")
Python

3: 簡単な足し算をする機能

ここを、今日の“ちょっと実用的な機能”にします。

def calc_sum():
    print("足し算モードです。2つの数字を入力してください。")

    a_text = input("1つ目の数字: ")
    b_text = input("2つ目の数字: ")

    # 数字に変換して計算
    a = int(a_text)
    b = int(b_text)

    result = a + b
    print("結果:", result)
Python

ここでの重要ポイントは、

メニューの「3」に対応する
“足し算だけを担当する関数”を用意した

ということです。


メニュー表示と分岐を整理する

メニューを表示する関数

def print_line():
    print("==========")

def show_menu():
    print_line()
    print("メニュー")
    print_line()
    print("1: あいさつする")
    print("2: 今日の目標を表示する")
    print("3: 簡単な足し算をする")
    print("0: 終了する")
    print_line()
Python

分岐で「どの機能を呼ぶか」を決める

def main():
    while True:
        show_menu()
        choice = input("番号を選んでください: ")

        if choice.strip() == "":
            print("何も入力されていません。0, 1, 2, 3 のどれかを入力してください。")
            continue

        if choice == "1":
            say_hello()
        elif choice == "2":
            show_goal()
        elif choice == "3":
            calc_sum()
        elif choice == "0":
            print("アプリを終了します。")
            break
        else:
            print("不正な入力です。0, 1, 2, 3 のどれかを入力してください。")
Python

ここで深掘りしたいのは、

メニューの番号
if の条件
呼び出す関数名

この3つが、きれいに“1対1で対応している”ことです。


「メニュー番号 → 関数 → 機能」を頭の中で結びつける

コードを日本語でマッピングしてみる

さっきの main を、日本語で整理してみます。

“1” が入力されたら → say_hello() → あいさつ機能
“2” が入力されたら → show_goal() → 目標表示機能
“3” が入力されたら → calc_sum() → 足し算機能
“0” が入力されたら → 終了メッセージ → ループ終了

この「番号 → 関数 → 機能」の対応を
自分の頭の中でハッキリ描けるようになると、
メニュー付きアプリの設計が一気に楽になります。


数値メニューでよくあるつまずきと、その整理

「数字なのに文字列で比較している」問題

今日もあえて、こう書いています。

if choice == "1":
Python

理由は、
input が文字列を返すからです。

もちろん、こう書くこともできます。

choice_text = input("番号を選んでください: ")
choice = int(choice_text)

if choice == 1:
    ...
Python

ただしこの場合、
数字以外が入力されると int(...) のところでエラーになります。

3日目の段階では、

「メニュー番号は文字列として扱う」
「比較も文字列でやる」

と割り切ってしまった方が、
混乱が少なくて済みます。


3日目のミニアプリ:簡単メニュー+足し算機能

今日の学びを全部入れたコード

def print_line():
    print("==========")


def say_hello():
    print("こんにちは!Python 簡単メニューアプリです。")


def show_goal():
    print("今日の目標:")
    print("・メニューの中身(機能)を増やす")
    print("・番号と関数の対応を意識する")


def calc_sum():
    print("足し算モードです。2つの数字を入力してください。")

    a_text = input("1つ目の数字: ")
    b_text = input("2つ目の数字: ")

    # ここでは、数字が入力される前提で int に変換
    a = int(a_text)
    b = int(b_text)

    result = a + b
    print("結果:", result)


def show_menu():
    print_line()
    print("メニュー")
    print_line()
    print("1: あいさつする")
    print("2: 今日の目標を表示する")
    print("3: 簡単な足し算をする")
    print("0: 終了する")
    print_line()


def main():
    while True:
        show_menu()
        choice = input("番号を選んでください: ")

        if choice.strip() == "":
            print("何も入力されていません。0, 1, 2, 3 のどれかを入力してください。")
            continue

        if choice == "1":
            say_hello()
        elif choice == "2":
            show_goal()
        elif choice == "3":
            calc_sum()
        elif choice == "0":
            print("アプリを終了します。")
            break
        else:
            print("不正な入力です。0, 1, 2, 3 のどれかを入力してください。")


main()
Python

このアプリを、役割ごとに言葉で説明してみます。

print_line
メニューの上下に区切り線を表示する。

say_hello
あいさつメッセージを表示する機能。

show_goal
今日の学習目標を表示する機能。

calc_sum
2つの数字を入力してもらい、その合計を表示する機能。

show_menu
メニュー全体を表示する。

main
「メニューを表示 → 番号を入力 → 番号に応じて機能の関数を呼ぶ → 0 なら終了」
という流れを、何度も繰り返す。


3日目のまとめ:今日つかんでほしい感覚

今日の本質は、これです。

数値メニューは
「機能への入り口を番号で並べたもの」

関数分岐は
「番号に応じて、どの機能(関数)を呼ぶか決めること」

番号 → 関数 → 機能
この対応が頭の中でハッキリ見えていれば、
メニュー付きの小さなツールなら
自分でどんどん増やしていけます。

4日目以降は、
「入力の間違いにもっと強くする」
「メニューの機能をもう少しリッチにする」
といった方向に育てていきます。

タイトルとURLをコピーしました