Pythonの関数とは?
今回はPythonの関数を学びましょう。
関数というのは、決まった処理や繰り返し行う処理などを簡単に実行するための仕組みです。
Pythonにはたくさんの関数があらかじめ組み込まれていますので、それらを使うことで、簡単にプログラムを組めるようになります。
また、自分で新しい関数を作ることもできます。
実際のプログラムではたくさんの関数が使われていますので、しっかりと理解して使えるようになって、コードを読めるようになりましょう。
組み込み関数を使ってみよう。
今までも既に組み込み関数は使っています。例えばrange関数ですね。
for文のところでも解説しましたが、もう一度、range関数を復習しましょう。
range関数に1つだけ整数を与えると、0から引数の1つ前まで値が増える数値を要素とするリストを返します。
もう一度、以下のコードを実行してみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
for i in range(10):
print(i)
if __name__ == '__main__':
main()
これを実行するとこのように0~9までの数字が順番に表示されます。
次にlen関数を使ってみましょう。
len関数は、文字列などの長さを調べるために使えます。
試しに以下のコードを実行してみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
num = len('Hello, World!')
print(num)
if __name__ == '__main__':
main()
これを実行すると13と表示されます。これは文字列の長さですね。
len関数は文字列だけではなく、タプルや辞書の要素の数を調べることもできます。
以下のコードを実行してみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def main():
t = len((1, 2, 3, 4, 5))
print(t)
d = len({'person':'Mike',
'fruit':'apple'})
print(d)
if __name__ == '__main__':
main()
これを実行すると、5と2が表示されます。それぞれの要素の数ですね。
関数を作ってみよう。
Pythonにはたくさんの関数があらかじめ組み込まれていますが、自分で必要な関数を定義して作ることができます。
関数の定義
まずは、簡単な関数を1つ作ってみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def hello():
print('Hello, World!')
def main():
hello()
if __name__ == '__main__':
main()
Pythonの関数を定義する時はdefと書きます。その後に続けて関数名()と記述します。
次の行をインデントして、処理したい内容を書きます。
これで関数の完成です。
作った関数を実行する時は、関数名()と記述します。
上のコードでは、helloという関数を作って実行しています。
これを実行すると、Hello, World!と出力されます。
ここまでは簡単ですよね。
引数の定義
関数を実行する時には引数を渡すことができます。
引数を渡して、その引数を使った処理を定義することで、さまざまな処理をできるようになります。
引数を使った関数を作ってみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def hello(num):
print('Hello, World!' * num)
def main():
hello(3)
if __name__ == '__main__':
main()
先ほどの関数の()の中にnumという変数が追加されていますよね。
この変数numに引数3が渡されて処理が実行されます。
hello(3)で3という引数が関数helloに渡されて実行されます。
変数numに3という数字が入って、それを使って処理をすることになるので、これを実行するとHello, World!が3回出力されます。
関数の戻り値
今までの関数は関数内で処理が完了していましたが、関数の中で処理した結果を外に出したい場合があります。
そのような場合は戻り値を返す関数を定義します。
戻り値を返すにはreturn文を使います。
戻り値を返す関数を定義してみましょう。
#!/usr/bin/env python
#-*- coding: utf-8 -*-
def multiplication(num1, num2):
return num1 * num2
def main():
answer = multiplication(3, 5)
print(answer)
if __name__ == '__main__':
main()
まず、先ほどと違って引数が2つありますね。
関数では引数をカンマで区切って書くことでいくつでも渡すことができます。
multiplicationという関数の中でreturn文が使われています。
変数num1に3、変数num2に5が渡され、それを掛け合わせたものをreturnで返すという処理になっています。
つまり15が返されます。
変数answerには15が入り、それをprintで出力していますので、このコードを実行すると15が表示されます。
最後に
今回は、関数の基本的な部分だけを解説しましたが、これで基本的な関数は使えるようになりました。
他にも関数で解説することはたくさんあるのですが、今はとりあえず今回解説したことだけ理解して書けるようにしましょう。
このブログでは、まず簡単なプログラムを作って動かせることを目的にしています。
1週目は、基本的な骨格の部分だけを学習して、2週目、3週目から少しずつ高度な機能を学んでいきましょうね。