7.1 関数の作成
Pythonでは、関数を作成することがプログラミングの基本的な側面なんだ。これによりコードがもっとモジュール化されて、再利用可能で読みやすくなるよ。Pythonの関数は
def
キーワードを使って定義されるんだ。その後に関数名と括弧(引数)が続く感じ。
関数って「一連のコマンドをまとめてグループ化して、それに名前を付けたもの」だと思うとイメージしやすいよ。一般的な関数の定義の仕方はこんな感じ:
def name(parameters):
command1
command2
commandN
もっとシンプルな関数はこうなるよ:
def greet():
print("Hello, World!")
関数を呼び出すには、関数の名前と括弧を書くんだ:
greet() # 結果: Hello, World!
関数を呼び出すことは、呼び出された場所にその内部コードを書くのと同じ意味を持つよ。同じコードを繰り返し書く代わりに、コードを独立したブロックにまとめて名前を付けられる。
7.2 関数への引数の渡し方
関数が同じことしかできなかったら退屈だよね。だから、関数にはパラメータを用意して、いろんな値を渡すことができる仕様になってるんだ。
関数内の変数は「パラメータ」と呼ばれる。関数を呼び出すときに渡される具体的な値は「引数」と呼ばれるよ。つまり、パラメータに引数の値が設定される感じ。
def greet(name):
print("Hello,", name)
greet("Alice") # 結果: Hello, Alice!
引数が2つある関数の例:
def print_sum(a, b):
print(f"合計 {a} と {b} は {a + b}")
print_sum(10, 15) # 結果: 合計 10 と 15 は 25
もちろん、引数には式も渡すことができるよ:
def print_sum(a, b):
print(f"合計 {a} と {b} は {a + b}")
print_sum(10*10-123, 15//2) # 結果: 合計 -23 と 7 は -16
ポイント! C/C++が好きな人向けに — 全ての変数はPythonではC++のポインタのようなものなんだ。関数のパラメータもそう。値を代入するときに値のコピーや複製は発生せず、常に参照が代入されるんだ。
7.3 関数はオブジェクト
Pythonでは、関数はファーストクラスのオブジェクトなんだ。つまり、関数は他のオブジェクトと同じように扱えるよ。これによって、プログラマーは柔軟なプログラムを書くための強力なツールを手に入れるわけ。
オブジェクトとしての関数
ファーストクラスオブジェクトとして、Pythonの関数は以下のことが可能なんだ:
- 変数に代入される
- 他の関数に引数として渡される
- 他の関数から返される
- リストや辞書のようなデータ構造に含められる
例:
def shout(text):
return text.upper()
yell = shout
def greet(func):
greeting = func("Hello") # 関数が呼び出される
print(greeting)
greet(shout)
将来的にこの話題にまた触れるけど、今はこれを覚えておいて — Pythonでは全てがオブジェクト! 関数、クラス、エラー、リスト、モジュールなど、全部!
GO TO FULL VERSION