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


