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

Web APP Python
スポンサーリンク

1日目のゴール

1日目のテーマは
「数字でメニューを選んで、その数字に応じて“違う関数”を動かせるようになること」です。

今日できるようになってほしいのは、この2つです。

数値メニューを表示して、ユーザーに番号を選んでもらう
選ばれた番号に応じて、呼び出す関数を切り替える(分岐する)

ここができると、一気に「アプリっぽさ」が出てきます。


数値メニューとは何か

メニューを「番号で選ぶ」という発想

現実のアプリや機械を思い出してください。

1 を押すと日本語
2 を押すと英語
0 を押すと終了

みたいな画面、見たことありますよね。

これを Python でやるのが「数値メニュー」です。

まずは、ただメニューを表示してみます。

print("1: あいさつする")
print("2: 今日の目標を表示する")
print("0: 終了する")
Python

ここではまだ「分岐」はしていません。
ただ「選択肢を見せているだけ」です。


入力を受け取って「選ばれた番号」を持つ

input は文字列として入ってくる

ユーザーに番号を選んでもらいます。

choice = input("番号を選んでください: ")
print("あなたが選んだ番号は:", choice)
Python

ここで重要なのは、
input で受け取った値は「文字列」だということです。

ユーザーが 1 と入力しても、
中身は "1" という文字列です。

だから、分岐するときは
if choice == "1": のように、
文字列として比較するのが安全です。


関数分岐の基本形

「番号ごとに違う関数を呼ぶ」形を作る

まずは、呼び出したい関数を用意します。

def say_hello():
    print("こんにちは!")

def show_goal():
    print("今日の目標:メニューから処理を選べるようになる")
Python

次に、選ばれた番号に応じて分岐します。

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

if choice == "1":
    say_hello()
elif choice == "2":
    show_goal()
elif choice == "0":
    print("終了します")
else:
    print("不正な入力です")
Python

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

「if / elif / else」で
“どの関数を呼ぶか”を切り替えている

ということです。


関数分岐を「日本語で」理解する

コードをそのまま日本語にしてみる

さっきの分岐を、日本語で説明してみます。

ユーザーに番号を入力してもらう
もし “1” なら、あいさつする関数を呼ぶ
もし “2” なら、今日の目標を表示する関数を呼ぶ
もし “0” なら、「終了します」と表示する
それ以外なら、「不正な入力です」と表示する

この「日本語で説明できるか」が、
分岐を理解するうえでとても大事です。


メニュー表示も関数にまとめてみる

「メニューを出す」という役割を関数にする

何度もメニューを出したくなるので、
ここも関数にしてしまいます。

def show_menu():
    print("1: あいさつする")
    print("2: 今日の目標を表示する")
    print("0: 終了する")
Python

これで、メインの流れはこう書けます。

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

if choice == "1":
    say_hello()
elif choice == "2":
    show_goal()
elif choice == "0":
    print("終了します")
else:
    print("不正な入力です")
Python

ここでの深掘りポイントは、

メニューを表示する処理と
選択に応じて分岐する処理を
きちんと分けていることです。


1日目のミニアプリ:一回だけ選べる簡単メニュー

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

def say_hello():
    print("こんにちは!Python 初級メニューへようこそ。")


def show_goal():
    print("今日の目標:")
    print("・数字でメニューを選ぶ")
    print("・番号に応じて関数を呼び分ける")


def show_menu():
    print("==========")
    print("メニュー")
    print("==========")
    print("1: あいさつする")
    print("2: 今日の目標を表示する")
    print("0: 終了する")
    print("==========")


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

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


main()
Python

この中で、

show_menu
→ メニューを表示するだけの関数

say_hello
→ あいさつだけを担当する関数

show_goal
→ 今日の目標だけを表示する関数

main
→ 「メニューを出す → 入力を受け取る → 分岐して関数を呼ぶ」流れを管理する関数

という役割分担になっています。


つまずきポイントを先に潰しておく

「数字なのに文字列で比較するの?」問題

ユーザーは 1 と打っているのに、
コードでは "1" と書くのが少し気持ち悪いかもしれません。

理由はシンプルで、
input は必ず文字列を返すからです。

もちろん、こう書いてもかまいません。

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

if choice == 1:
    ...
Python

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

1日目は、
「まずは文字列として比較する」
という形で慣れておくのがおすすめです。


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

今日の本質はこれです。

数値メニューは
「番号で処理を選ぶ仕組み」

関数分岐は
「選ばれた番号に応じて、呼ぶ関数を切り替えること」

メニューを表示する関数
選ばれた番号に応じて処理する if 文
それぞれの処理を担当する関数

この3つを組み合わせると、
一気に「アプリっぽい」形になります。

2日目以降は、
このメニューを「何度も選べるようにする」
「入力の間違いに強くする」など、
少しずつ“アプリとしての強さ”を足していきます。

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