いーほろよいの技術ブログ

IT技術ブログになります。

Pythonで関数を定義する その1

はじめに

余程小さいプログラムで無い限り関数を定義する事を避けて通れないと思います。

本日はその関数の定義について書いてみたいと思います。

↓公式ドキュメントなので合わせてご確認ください。

4. その他の制御フローツール — Python 3.6.1 ドキュメント

 

関数の定義が必要な場面を考えてみる

例えば名簿にある住所、年齢、氏名を並べて表示するプログラムを組もうとします。

もし、関数定義を使用しないと下記のようなコードになると思います。(ファイルを読み込んでループしないと想定して

print("住所:%s/年齢:%s/氏名:%s" % ('東京', '31', '新宿太郎'))
print("住所:%s/年齢:%s/氏名:%s" % ('神奈川', '25', '神奈川次郎'))
print("住所:%s/年齢:%s/氏名:%s" % ('埼玉', '40', '埼玉三郎'))
... 

この場合、"氏名と年齢を入れ替えたい"となったら全部書き直さないといけません。

...無理です。

こんな規則性がある処理なら、これだけの処理をしてくれる"関数"があってもいいのではないか。

しかし、Pythonにそんなワガママを聞いてくれるやさしい標準関数はございません...

そこで自分で関数を定義する事になります。

 

関数の定義方法

定義自体はそんなに難しく無いのですが、正しく理解して使用しないと取れないバグを生み出してしまいます。

そのため、今回はその辺の注意点を中心に書いていきたいと思います。

 因みに関数定義のフォーマットは下記の通りです。

def  関数名(引数1[, 引数2...]):
  """処理を書く"""

 

 注意点

サンプルプログラムに詳しく記述したのでご参照ください。

github.com

  • 引数を指定できますが、引数を指定した場合は必ず呼び出し時に引数を設定する事になる
  • 引数にデフォルト値を渡す事ができる
  • 関数定義が評価された時点で引数の初期化される
  • 引数のデフォルト値は一度だけ

 

ざっとですがこんな感じです。

 

以上、最後までお読みいただきありがとうございます。