関数

関数(function)とは指定した値に対して、定められた処理を実行して結果を返すことです。
定められた処理とは、複数の処理でその処理をまとめて実行できます。

関数には、独自関数と組み込み関数の2つ種類があります。
独自関数は、ユーザ定義関数ともいい、自身で作成した関数です。
組み込み関数とは、Pythonに定義されている関数です。
今までにもprint()関数やlist()関数などの関数を実行してきました。

print()関数では()内に表示した値を設定し、それを出力しました。
pythonに組み込まれている関数はたくさんあります。

イテレータ

イテレータとはデータの集まりである配列(リスト・タプルなど)やデータ構造の各要素を一つずつ順に取り出すことのできる仕組みで、iter()関数で行えます。
後述するfor文などでも行えるのですが、pythonにはiter関数があります。
では実際に以下を入力して実行してみてください。

test_list=[1,10,100]
test_iter = iter(test_list)
print(next(test_iter))
print(next(test_iter))
print(next(test_iter))

iter関数でデータ集合を設定して、next関数で順番に値が表示されます。

ジェネレーター

ジェネレーターとは配列やデータ構造の各要素を生成していく仕組みで、yeidld文を使用して作成します。
データの集まりを作成するイメージです。
では実際に以下を入力して実行してみてください。

def gen():
yield 1;
yield 2;
yield 3;
x=iter(gen())
print(gen())
print(next(x))
print(next(x))
print(next(x))

関数を実行すると「generator object」が表示されます。
また、iterとしているのでnext関数で順番に値が表示されます。

その他の関数

その他の関数としてhelp()関数を利用することで関数の詳細を確認することができます。
また、データの集合を処理するのには、pythonで標準で用意しているzip関数(複数のデータ集合から値を取得)やenumerate関数(要素とインデックスを併せて取得)などがあります。
それ以外にもpythonには組み込まれている関数がありますので実行してみてください。

自作関数

pythonで用意されている関数もあれば、自分で関数を作成することもできます。
関数を作成するには関数を定義する必要があります。
関数は以下のように定義します。

def 関数名 (引数1,引数2,…):
関数の処理
return 戻り値

引数とは関数で使用する値で、戻り値とは関数を実行したときに返ってくる値です。
関数に戻り値がない場合、returnは省略できます。
関数を実行するにはprint()関数と同じように関数名(引数1,引数2,…)とします。
def行の次の行以降にはインデントとして半角スペースが4つあります。

では実際に以下を入力して実行してみてください。

def test_func(a,b,c):
d=a+b-c
return d
test_func(1,2,3)

aとbを足してcをマイナスしているため、「0」が結果として表示されます。

変数について以前に学習していましたが、変数にはローカル変数とグローバル変数があります。
ローカル変数とは関数の中でだけ有効な変数で、グローバル変数とは関数の外側(別の関数)でも共通で利用できる変数です。
globalで宣言し、変数の有効範囲をスコープといいます。
では実際に以下を入力して実行してみてください。

value1=1
value2=1
def test_func2():
global value1
value1=10
value2=10
test_func2()
print(value1)
print(value2)

value1はグローバル変数として指定しているため結果は「10」が表示されます。
value2は関数の影響を受けずに最初に指定した「1」がそのまま表示されます。