関数 
 関数の利用 
 関数定義 
 関数の引数 
 関数の戻り値 
 戻り値の受取り 
 デフォルト引数 
 キーワード引数 
 super() 

 機能・要件
 タスク
 ライブラリ
 導入
 Sample
 Error
 基礎他

 関数
 ・入力データに対し、ある処理を行った上でデータを出力
 ・関数は利用者にとってブラックボックス
関数の機能と使い方を知っていれば利用できる。
 ・関数は外部から入力を「引数」としてを受け取れる。
 ・関数は処理結果を「戻り値」として利用者に渡す。

 関数の利用
 ・ユーザ定義関数
プログラマ自身が自由に作成した関数
 ・組み込み関数
Pythonに標準で組み込まれている関数
print()、input()、range() など、 参考 
 ・関数内から他の関数を利用することができる。
他のソースファイルにある関数の利用
 ・関数はファーストクラスオブジェクト
関数名でアクセスでき、変数に代入もできる。

 関数定義 (プログラマが関数を作成すること)
 ・プログラマは自由に関数を定義し利用できる。
 ・「def」で定義
動的型付けのため、引数や戻り値の型宣言は不要
 ・形式
def 関数名([仮引数][, ・・・] ):
・・・処理を記述・・・
[return 戻り値]
[ ]は省略可能
 ・ 参考

 関数の引数
 ・関数を利用することを「関数を呼ぶ」という。
 ・関数を呼び出すときに渡す値のことを、引数という。
 ・関数が呼び出されると、実引数の値が仮引数に代入される。
呼び出し元の関数の引数を 実引数(argument) という。
呼び出し先の関数の引数を 仮引数(parameter) という。
 ・引数は値渡しされる。
Javaの参照型を引数にする場合と同じ。
ミュータブルな型を渡すときは要注意
 ・キーワード引数
キーワード引数を使い、明示的に引数を指定できる。
 ・引数は強制ではない。引数のデフォルトを設定できる。
 ・初めの一回だけ初期化する場合
ミュータブルな型を利用するとき、関数呼び出しを跨ぎデフォルト値を共有
 ・「*args」で位置引数をタプルで取得
*がついてれば何でもよい。(慣習的に*args)
 ・「**kwargs」で位置引数を辞書型で取得
**がついてれば何でもよい(慣習的に**kwargs)
 ・「*argsと**kwargs」を組み合わせることができる
ライブラリはこの仕組みを使い、ユーザにカスタマイズ性を提供

 関数の戻り値
 ・復帰(return)
呼ばれた関数内でreturnに値を指定すると呼び出し元に戻り値を返す。
呼ばれた関数内でreturnが実行されると関数を呼び出した場所に復帰する。
 ・戻り値のないメソッドの定義をすることも可能

 戻り値の受取り
 ・関数の呼び出し
呼び出し側が関数を呼ぶと、呼ばれた関数は処理を実行
呼び出し側は戻り値を明示的に変数に代入することで受け取れる。

 デフォルト引数
 ・引数を省略して呼び出せる関数を作成できる。
 ・仮引数の指定で「=」を記述して引数が省略されたときの引数の値を指定できる。
定義した引数の数より少ない引数で呼び出せる。

 キーワード引数
 ・関数を「仮引数名=値」という形式で呼び出すことができる。
 ・キーワード引数は位置引数の後ろに記述する。
位置引数:先頭から順に引数の位置を対応させて渡される引数

 super()
 ・オブジェクトの基底クラスを返す関数
 ・基底クラスで定義されたインスタンスメンバやコンストラクタを呼び出すことができる。
 ・super()関数によるメンバアクセス
明示的に基底クラスのメンバを指し示すことができる。
super()関数と「.」演算子を用いる。