まず結論

関数は、処理に名前をつけてまとめる仕組みです。

def greet():
    print("こんにちは")

greet()

このコードでは、greet という関数を作っています。

最後の greet() で、その関数を呼び出しています。

こんなときに読む記事です

次のようなところで止まった人向けです。

  • def が何をしているのか分からない
  • greet()() がなぜ必要なのか分からない
  • 関数を作ることと呼び出すことの違いを知りたい

ここでは、引数やreturnの詳しい話までは扱いません。

絵で見るなら

関数は、名前のついた小さな作業台のようなものです。

def greet(): で、greet という名前の作業台を用意します。

greet() と呼ぶと、その作業台の中に書いた処理が動きます。

defで関数を作る

関数を作るときは、def を使います。

def say_hello():
    print("Hello")

この時点では、関数を作っただけです。

中の print("Hello") は、まだ実行されません。

関数名で呼び出す

関数を動かすには、関数名に () を付けて呼び出します。

say_hello()

この行で、関数の中に書いた処理が実行されます。

何度も呼べる

関数は、同じ処理を何度も呼び出せます。

say_hello()
say_hello()

同じ print("Hello") を何度も書かなくて済みます。

よくある勘違い

関数は、作っただけでは動きません。

def greet():
    print("こんにちは")

このコードだけだと、greet という関数を用意しただけです。

実際に動かすには、あとで greet() と呼び出します。

読み方のコツ

関数を見るときは、次の2つを分けて読みます。

def 関数名(): は、関数を作る
関数名() は、関数を呼び出す

まずは「作る場所」と「呼ぶ場所」を探すだけで大丈夫です。

手を動かすミニ練習

関数を作って、2回呼び出してみましょう。

def cheer():
    print("がんばろう")

cheer()
cheer()

関数を呼び出した回数だけ、中の処理が動きます。