共テ情報I – 最小限のPython入門
§5. 関数
解説動画
【MENU】
00:00 要項:関数
15:40 Sample 5-1
21:00 Sample 5-2
26:48 おわりに
END 28:00
◆ 関数の定義と呼び出し
関数は,特定の処理を行うための命令群をまとめ,名前をつけたもので,コードの再利用性を高め,複雑なプログラムを簡潔にするために用いられる.関数を使用することで,コードの重複を避け,効率的なプログラムを作成できる.
関数の定義
関数の定義には, def
キーワードを用い,関数名,引数,処理内容を記述する.関数名は,変数と同様の命名規則に従って付ける.
def 関数名(引数1, 引数2, ...): # 引数はなくてもよい
# 関数の処理
return 戻り値 # 戻り値は必要なければ省略可能
関数の呼び出し
関数を定義した後,具体的な値を引数として渡し,その処理を実行する.
関数名(引数1に渡す値, 引数2に渡す値, ...)
### 引数に与えられた名前を用いて挨拶を行う関数を定義し,"太郎" という引数で呼び出す.
def greet(name):
print("こんにちは," + name + "!")
greet("太郎") # 出力:こんにちは太郎!
関数の引数
関数の引数とは,関数に渡される変数または値のことである.これにより,同じ処理を異なるデータで繰り返すことができる.なお,決まった操作を行うだけの,引数を取らない関数も定義可能である.
# 2つの引数を持つ関数の例
def syoukai(namae, nenrei):
print(namae+"さんは"+str(nenrei)+"才です.")
syoukai("くにごろう", 17) # 出力:くにごろうさんは17才です.
# namaeに"くにごろう"が,"nenrei"に15が代入され,関数が呼び出された.
# 引数を持たない関数の例
def hello_world():
print("Hello, World!")
print("こんにちは,世界!")
hello_world()
関数の戻り値
関数は処理結果を return
文を用いて呼び出し元に返すことができる.戻り値がない場合もある(処理の結果を直接表示したり,何かの状態を変更したりする目的で使用されることが多い).
### 関数の戻り値を利用する例
def multiply(x, y): # 2つの数値の積を返す関数を定義
return x * y
# 関数の戻り値を変数に代入して利用する
result = multiply(4, 5)
print(result) # 出力: 20
# 戻り値を他の関数の引数として直接使用する
print(multiply(3, 3)) # 出力: 9
※ すでに扱ってきたprint(), input(), type(), int(), float(), str()などは,Pythonで定義済みの関数で,組み込み関数と呼ばれる.
※ キーワード引数:引数名を指定して値を渡すことができる.これにより,引数の順序を変更することが可能である.
※ デフォルト引数:関数定義時にパラメータの初期値を設定することができる.呼び出し時に対応する引数が提供されない場合,このデフォルト値が使われる.
※ 複数の戻り値を返す関数を定義することもできる(タプルを使う).
◆ サンプルコード
Sample 5-1
2次方程式の3つの係数を引数にとり,2つの解をリストとして返す関数.
def kai_koshiki(a, b, c):
D = b ** 2 - 4 * a * c
if D < 0:
return "実数解なし"
else:
kai1 = (-b + D ** 0.5) / (2 * a)
kai2 = (-b - D ** 0.5) / (2 * a)
return [kai1, kai2]
# 関数の呼び出し
ichiji = kai_koshiki(1, -4, 3)
print(ichiji)
Sample 5-2
引数nを与えるとフィボナッチ数列を第n-1項まで生成し,リストとして返す関数.
def fibonacci(n): # n > 2とする.
suretsu = [0, 1]
for i in range(2, n, 1): # 2, 3, 4, ... , n-1
suretsu.append(suretsu[i - 1] + suretsu[i - 2])
return suretsu
# 関数の呼び出し
print(fibonacci(200))