まず結論

引数は、関数に渡す値です。

def greet(name):
    print(name + "さん、こんにちは")

greet("モコ")

このコードでは、"モコ"name に入ります。

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

次のような疑問がある人向けです。

  • def greet(name):name が何なのか分からない
  • 関数を呼ぶときの () の中に何を書けばいいか分からない
  • 引数と変数の違いがぼんやりしている

引数は、関数の中で使うために外から渡す値です。

def側の名前に値が入る

関数を呼ぶとき、渡した値が def 側の名前に入ります。

def double(number):
    return number * 2

result = double(5)
print(result)

double(5) と呼ぶと、number5 が入ります。
そのため、結果は 10 になります。

引数があると使い回せる

引数を使うと、同じ関数を別の値で使えます。

def greet(name):
    print(name + "さん、こんにちは")

greet("モコ")
greet("ソラ")

関数の中身を何度も書かなくて済みます。

引数が2つある場合

引数は複数にできます。

def add(a, b):
    return a + b

print(add(2, 3))

a2b3 が入ります。

よくあるエラー

必要な引数を渡し忘れるとエラーになります。

def greet(name):
    print(name + "さん")

greet()

関数が name を必要としているのに、呼び出し側で値を渡していないためです。

読み方のコツ

関数を読むときは、呼び出し側と定義側を対応させます。

greet("モコ")
def greet(name):

この2行を見比べて、「name"モコ" が入る」と読むと分かりやすくなります。