Python | 1 日 90 分 × 7 日アプリ学習:関数で処理をまとめるアプリ(初級編)

Web APP Python
スポンサーリンク

3日目のゴール

3日目のテーマは
「def で作った関数を“組み合わせて使う”感覚を身につけること」です。

1日目は「関数を作る」
2日目は「関数に入力(引数)を渡す」

そして3日目は、
複数の関数を組み合わせてアプリを作る
ここに進みます。

関数は“部品”です。
今日はその部品をどう組み合わせるかを学びます。


関数を「役割ごとに分ける」考え方

1つの関数に全部詰め込むと壊れやすい

例えば、次のようなコードを考えてみます。

print("==========")
print("メニュー")
print("==========")
print("1: 追加")
print("2: 削除")
print("0: 終了")
print("==========")
Python

これを毎回書くのは大変ですし、
修正したいときに全部直す必要があります。

そこで、
「役割ごとに関数に分ける」
という考え方が重要になります。


役割を分けた関数を作る

例:区切り線を表示する関数

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

例:メニューを表示する関数

def show_menu():
    print_line()
    print("メニュー")
    print_line()
    print("1: 追加")
    print("2: 削除")
    print("0: 終了")
    print_line()
Python

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

関数の中で別の関数を呼び出している
ということです。

show_menu() の中で print_line() を呼ぶことで、
「区切り線を出す」という処理を再利用しています。


関数を組み合わせると“アプリの流れ”が作れる

メイン処理を関数にまとめる

アプリ全体の流れを
ひとつの関数にまとめると、
コードがとても読みやすくなります。

def main():
    print("アプリを開始します")
    show_menu()
    choice = input("番号を選んでください: ")
    print("あなたが選んだ番号:", choice)
Python

そして、最後にこれを書きます。

main()
Python

これでアプリが動きます。

ここでの重要ポイント

関数は
「何をするか」
「いつするか」
を分けて考えるための道具です。

def は「何をするか」を定義する。
main() は「いつするか」を決める。

この分離ができると、
アプリの構造が一気に理解しやすくなります。


関数を“階層”として見る

関数の中で関数を呼ぶと「階層」が生まれる

次のコードを見てください。

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

def show_menu():
    print_line()
    print("メニュー")
    print_line()

def main():
    show_menu()
Python

ここには3つの階層があります。

最上位
main(アプリ全体の流れ)

中間
show_menu(メニュー表示のまとまり)

最下位
print_line(区切り線を出す最小単位)

このように、
関数は“階層構造”を作るための道具
だと理解すると、
大きなアプリでも迷わなくなります。


3日目のミニアプリ:メニュー表示アプリ

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

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

def show_menu():
    print_line()
    print("メニュー")
    print_line()
    print("1: 今日の目標を表示")
    print("0: 終了")
    print_line()

def show_goal():
    print_line()
    print("今日の目標:関数を組み合わせて使えるようになる")
    print_line()

def main():
    print_line()
    print("関数練習アプリへようこそ")
    print_line()

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

    if choice == "1":
        show_goal()
    else:
        print("アプリを終了します")

main()
Python

このアプリでは、

print_line
区切り線を出す最小単位

show_menu
メニュー表示のまとまり

show_goal
目標を表示するまとまり

main
アプリ全体の流れを管理する

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


つまずきポイントを深掘りしておく

つまずき1:関数の順番はどう書くべき?

Python は
「定義より前に呼び出す」ことができません。

つまり、

show_menu()
def show_menu():
    ...
Python

これはエラーになります。

基本ルールは
“定義を上、呼び出しを下”
です。

つまずき2:関数が増えると混乱する

関数が増えてきたら、
「役割ごとにまとめる」
という意識を持つと整理できます。

区切り線を出す関数
メニューを表示する関数
ユーザーの選択を処理する関数
アプリ全体を動かす関数

このように、
「何を担当している関数なのか」
を日本語で説明できれば、迷いません。


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

今日の本質はこれです。

関数は「処理のまとまり」ではなく
“アプリを組み立てるための部品”である。

関数の中で関数を呼ぶと
“階層”が生まれる。

main を作ると
アプリの流れが一目で分かる。

役割ごとに関数を分けると
コードが壊れにくくなる。

ここまで理解できていれば、
4日目の「戻り値(return)」が
とてもスムーズに入ってきます。

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