3日目のゴール
3日目のテーマは
「メニューの“中身”を増やして、ちゃんと“道具っぽいアプリ”にすること」です。
ここまでであなたは、
数字でメニューを表示できる
番号に応じて関数を呼び分けられる
終了を選ぶまでメニューを繰り返せる
というところまで来ています。
今日はそこから一歩進んで、
ちょっと役に立つ機能をメニューに入れる
メニューの番号と“機能”を頭の中で整理する
「メニュー=機能の入り口」という感覚をつかむ
ここを目指します。
メニューは「機能の入り口の一覧」
メニューを“地図”として見る
メニューって、ただの文字の並びではなくて、
「このアプリにどんな機能があるかの地図」なんです。
例えば、こんなメニューを考えます。
1: あいさつする
2: 今日の目標を表示する
3: 簡単な足し算をする
0: 終了する
これを日本語で言い換えると、
1 → あいさつ機能の入り口
2 → 目標表示機能の入り口
3 → 足し算機能の入り口
0 → アプリ終了の入り口
ということです。
3日目では、
「メニューの番号 = 呼び出す関数 = 機能」
という対応を、はっきり意識してもらいます。
機能ごとの関数を用意する
1: あいさつ機能
def say_hello():
print("こんにちは!Python 簡単メニューアプリです。")
Python2: 今日の目標を表示する機能
def show_goal():
print("今日の目標:")
print("・メニューの中身(機能)を増やす")
print("・番号と関数の対応を意識する")
Python3: 簡単な足し算をする機能
ここを、今日の“ちょっと実用的な機能”にします。
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日目以降は、
「入力の間違いにもっと強くする」
「メニューの機能をもう少しリッチにする」
といった方向に育てていきます。


