第4章 関数
関数は1つのことをすべきである。そのことを徹底すべきだ。たったそれだけのことに特化すべきだ。
-Robert C. Martin
関数とは、入力値を受け取り、命令を実行し、出力値を返すまでの複合分のことである。プログラム内で関数の機能を定義すれば、何度でも再利用できる。
関数
関数を呼び出すというのは、その関数が必要とする入力値を渡し、命令を実行し、出力値を返すことを意味する。関数への入力値を引数と呼び、関数に値を渡すときは、「引数を渡す」と言う。
Pythonの関数は、数学の関数と似ている。
f(x) = x * 2
この関数の左辺には、引数xが書かれる。式の右辺は関数の定義で、引数(x)を利用して計算を行い、結果(出力)を返す。この場合、関数の出力値は、関数の引数値xを2倍した値。
以下の実行式で関数を呼び出す。
[関数名]([カンマで分かれた(複数の)引数])
関数を呼び出すときは、関数名の後ろに丸カッコ(())を付ける。カンマで区切られた引数は、丸カッコの中に入る。
関数を定義する
Pythonで関数を作るということは、関数名を決め、引数を定義し、何をするかを定義し、関数の出力を定義する、ということ。
def [関数名]([引数]):
[関数定義]
数学関数f(x)=x*2は、Pythonでは次のようになる。
def f(x):
return x * 2
組み込み関数
プログラミング言語には、最初から用意されている関数がある。Pythonはこれを組み込み関数と呼んでいる。組み込み関数は、あらゆる種類の計算とタスクを実行でき、特別な準備なしですぐに使用できる。
len は、オブジェクトの長さを返す。
len("Monty")
>> 5
len("Python")
>> 6
str は、オブジェクトを引数として受け取り、str データ型の新しいオブジェクトを返す。
str(100)
>> '100'
int関数は、オブジェクトを受け取り、整数オブジェクトを返す。
int('1')
>> 1
float関数は、オブジェクトを受け取り、浮動小数点数オブジェクトを返す。
float(100)
>> 100.0
str, int, floatの各関数に渡す引数は、文字列、整数、または浮動小数点数として扱える必要がある。
str関数は、大部分のオブジェクトを引数として受け取れる。int関数は整数の文字列か、浮動小数点数のオブジェクトしか受け付けない。float関数は、数字の文字列または整数オブジェクトのみを受け取れる。
intまたはfloat関数に、整数あるいは浮動小数点数に変換できない引数を渡そうとすると、Pythonは例外を発生させる。
inputは、プログラムを動作させている人から、情報を集める組み込み関数。
input関数は、文字列を引数として受け取り、それをシェル内でプログラムを使っている人に表示する。ユーザーは、シェルに返事(レスポンス)を入力できる。そして、レスポンスを変数に保存できる。
関数を再利用する
関数は、値の計算を行って戻り値を戻すだけではなく、再利用したい機能をまとめておける。
関数を使用すると、より少ないコードを書くだけで済む。
必須引数とオプション引数
関数が受け取る引数は2種類ある。必須引数とオプション引数。
必須引数は省略できない。関数を呼び出すときに、必須引数をすべて渡さないと、Pythonは例外を発生させる。
オプション引数は省略できる。省略した場合、関数は代わりにデフォルト値を使用する。
オプションの引数の構文は、次のとおり。
[関数名]([引数名]=[引数値])
必須引数と同様に、オプション引数はカンマで区切る必要がある。
オプション引数のある関数の例
def f(x=2):
return x ** x
print(f())
print(f(4))
>> 4
>> 256
必須引数とオプション引数の両方を持つ関数も定義できる。その場合、必須引数を先に定義して、その後にオプション引数を定義する。
def add_it(x, y=10):
return x + y
result = add_it(2)
print(result)
>> 12
スコープ
例外処理
ドキュメンテーション文字列
第1部
第1章 イントロダクション
第2章 さあ、はじめよう!
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部
第21章 データ構造
第22章 アルゴリズム
コメント
最新を表示する
NG表示方式
NGID一覧