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

Web APP Python
スポンサーリンク

1日目のゴール

1日目のテーマは
「def で関数を定義して、自分で呼び出せるようになること」です。

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

def を使って「自分の命令」を作る
その命令(関数)を「名前で呼び出す」

これができると、
「同じ処理を何度も書かなくていい世界」に入れます。


関数とは何かを“日本語で”理解する

関数は「名前のついた処理のまとまり」

まず、コードの前にイメージからいきます。

あなたが毎朝やることを考えてみてください。

起きる
顔を洗う
歯を磨く
コーヒーを入れる

これを毎回全部言葉で説明するのは面倒なので、
「朝のルーティン」と名前をつけると楽になります。

プログラミングでいう「関数」は、
この「朝のルーティン」と同じです。

何行かの処理に、
名前をつけてひとまとめにしたもの
それが関数です。


def で関数を定義する基本形

いちばんシンプルな関数の形

まずは、形を見てください。

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

これで、say_hello という名前の関数ができました。

ここで重要なのは3つです。

def で「これから関数を定義しますよ」と宣言している
say_hello が関数の名前
: の次の行から、インデント(字下げ)された部分が「関数の中身」

この関数は、
「呼ばれたら『こんにちは!』と表示する」
という処理のまとまりです。

関数は「定義しただけ」では動かない

よくある勘違いがこれです。

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

これを書いても、
何も表示されません。

理由はシンプルで、
「定義」と「実行」は別だから」です。

定義は「こういう処理ですよ、と登録するだけ」。
実際に動かすには「呼び出し」が必要です。


関数呼び出しの基本

関数を「名前+かっこ」で呼ぶ

さっきの say_hello を呼び出してみます。

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

print("これからあいさつします")
say_hello()
print("あいさつが終わりました")
Python

実行すると、こうなります。

これからあいさつします
こんにちは!
あいさつが終わりました

ここで押さえてほしいポイントは、

say_hello ではなく
say_hello() と「かっこ」をつけて呼ぶ

ということです。

かっこがついた瞬間に、
「この関数を実行して」という意味になります。


同じ処理を何度も書かないための関数

関数がないとどうなるか

例えば、3回あいさつしたいとします。

関数を使わないと、こうなります。

print("こんにちは!")
print("こんにちは!")
print("こんにちは!")
Python

これでも動きますが、
「こんにちは!」の内容を変えたくなったら
全部書き換えないといけません。

関数を使うとどうなるか

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

say_hello()
say_hello()
say_hello()
Python

「何をするか」は関数の中に1回だけ書いておいて、
「いつやるか」は呼び出し側で決める。

これが関数の一番おいしいところです。

もしあいさつを変えたくなったら、
関数の中身だけ変えればOKです。

def say_hello():
    print("おはようございます!")  # ここだけ変える
Python

呼び出し側はそのままで、
動きだけ変えられます。


引数なしの関数で「処理をまとめる」感覚をつかむ

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

アプリを作っていると、
画面に区切り線を出したくなることがあります。

print("==========")
Python

これを何度も書くのはダルいので、
関数にしてしまいます。

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

使うときはこうです。

print("メニューを表示します")
print_line()
print("1: 追加")
print("2: 削除")
print_line()
print("終了します")
Python

ここでのポイントは、

「区切り線を出す」という意味のかたまりに
print_line という名前をつけた

ということです。

コードを読む人は、
print_line() を見ただけで
「ここで区切り線が出るんだな」と分かります。


1日目のミニアプリ:あいさつ+区切り線アプリ

今日の学びをまとめた小さな例

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

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

print_line()
say_hello()
print_line()
print("今日は『def と関数呼び出し』を学びます。")
print_line()
Python

このコードの中で、

def print_line():
→ 区切り線を出す処理に名前をつけている

def say_hello():
→ あいさつの処理に名前をつけている

print_line() / say_hello()
→ 「その処理をここで実行して」という命令

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


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

つまずき1:インデント(字下げ)を忘れる

関数の中身は、必ずインデントします。

def say_hello():
print("こんにちは!")  # ← これはエラー
Python

正しくはこうです。

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

「def の行より、1段下げる」と覚えてください。

つまずき2:呼び出しでかっこを忘れる

say_hello   # これは「関数そのもの」を指しているだけ
say_hello() # これは「関数を実行する」
Python

最初は、
「呼び出すときは必ずかっこをつける」
と機械的に覚えてしまってOKです。


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

今日の本質は、
「関数は“名前のついた処理のまとまり”」
という感覚を持つことです。

def 関数名(): で「処理に名前をつける」
インデントされた部分が「その処理の中身」
関数名() で「その処理を実行する」
同じ処理を何度も書かずに済む

ここまでイメージできていれば、
2日目以降の「引数」「戻り値」も
スッと頭に入ってくるようになります。

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