次は何を学ぼうかな?
今回は「関数定義、呼び出し」について紹介するよ!
Pythonを学び出そうと苦戦しつつも環境構築をしてみたけど、何から覚えればいいかわからない・・・という方も多いのでは無いでしょうか!?
こちらの講座は、全6回にわたりまして最低限Pythonのプログラムが書ける、読める、好きなものを作れるレベルを目指し、Pythoプログラミング歴4年の私がまずこれだけ覚えておけばOKなPython文法をご紹介します。
第5回は「関数定義、呼び出し」についてです!
目次
関数を定義、呼び出しをしてみよう!
Pythonにおける関数とは、何度も使用する処理を定義し、必要な時に呼び出すことで何度も同じ処理を記述することなくプログラムの記述を容易にすることができます。
Pythonでは標準で準備されている関数もありますが、今回は自作でその関数を定義する方法をご紹介します!
関数を使わないと・・・
まず、関数を使用しない場合を考えてみましょう。
aとbを変化させ、足し合わせる処理してみます。
a = 1
b = 2
print(a + b)
a = 3
b = 4
print(a + b)
a = 100
b = 2.5
print(a + b)
関数を使用しない場合、毎回aとbへ数値を代入し、毎回足し算をする処理をしなければいけません。
出力すると下記になります。
次に、a,bを足し合わせ出力する関数を定義する場合を考えてみます。
関数を定義、呼び出し
まず、関数の定義は下記で記述することができます。
def 関数名(引数1,引数2,引数3・・・):
処理内容
return 戻り値
関数化はdef の後に関数名を指定し,( )内に引数を指定します。*引数は指定なしも可能
returnで戻り値を指定します。
また、関数の呼び出しは下記で記述します。
関数名(引数1,引数2,引数3・・・)
それでは、実際に関数を定義し、動作を確認してみましょう。今回は返り値を設定せずに記述してみます。
def add(a, b) :
print(a + b)
add(1, 2)
add(3, 4)
add(100, 2.5)
先ほどa,bを変更して記述したプログラムの同じ処理内容を関数化してしまえば同じ内容をシンプルに記述することができます。
実際に出力してみると同様に出力できることがわかります。
また、returnを用いても同様に記述することができます。関数を実行する際は、返り値の変数を受け取るために 変数 = 関数 と記述します。
def add(a, b):
y = a + b
return y
y1 = add(1, 2)
print(y1)
y2 = add(3, 4)
print(y2)
y3 = add(100, 2.5)
print(y3)
出力してみますと、同じ結果が得られることがわかります。
また、関数の引数、返り値の数を増やすことができます。今回の関数の返り値は2つなので
関数を実行する際、2つの返り値を受け取れる様に変数y1,y2を記述します。
def add_test(a ,b ,c):
d = a * b * c
e = a + b + c
return d, e
y1, y2 = add_test(1 ,2 ,3)
print('y1 = {0}, y2 = {1}'.format(y1, y2)
こうしてy1,y2を代入することで2つの返り値を受け取ることができます。
実際に出力してみますと、それぞれの返り値を受け取れていることがわかります。
関数を使用するときの注意点
ここで、関数をしようする際の注意点ですが定義した関数を実行する時に、定義した引数の数と異なる数で関数を実行したり(引数3つ → 引数2つで実行)、返り値は2つなのに、受け取る変数が1つだけなど受け渡す変数の数が異なるとエラーが発生します。
def add_test(a ,b ,c):
d = a * b * c
e = a + b + c
return d, e
#引数の数は異なる
y1, y2 = add_test(1 ,2)
print('y1 = {0}, y2 = {1}'.format(y1, y2)
#返り値を受け取る変数の数が異なる
y1 = add_test(1 ,2 ,3)
print('y1 = {0}, y2 = {1}'.format(y1, y2)
関数を呼び出す際にに引数が足りなければ、引数が足りませんと「Type Error」となります。
返り値を受け取る変数の数が異なると、y2を定義することができていないので出力の際にErrorとなります。
今回の問題集
今回は「関数定義、呼び出し」について学びました、次の問題集で理解度を確認し知識の定着を図りましょう!
def add(arg):
result = arg + 50
return result
#関数名、引数名、変数名は何でも可
def calc(arg):
if arg <= 5:
return 0
else:
return arg
#関数名、引数名、変数名は何でも可
def Python_output(mozi, index):
i = 0
while index >= i:
print(mozi)
i += 1
Python_output('Python', 5)
オススメの勉強方法
もっとPythonを勉強してみたい!という方にオススメ勉強方法をご紹介します。
オススメの書籍
プログラミング自体が始めてという方にオススメする書籍は「スラスラ読めるPythonふりがなプログラミング [ ビープラウド ]」です。
基礎的な構文を1から学ぶことができ、プログラムにふりがなをふるように説明がされているので初学者の方でも理解することができる書籍となっています。
本ブログでの講座見ていただき説明は少しもの足りないな感じた方はこちら書籍を手に取ってみてはいかがでしょうか?
オススメのYouTubeチャンネル
YouTube のPython関連の動画も独学にはオススメです。文章だけでは理解しづらいという方はYouTube動画を参考してみてはいかがでしょうか!?
Python学習にオススメのYouTubeチャンネルはこちらの記事をご覧ください。
初学者おすすめ!Python独学するならYouTubeを活用してみよう以上、初心者必見!Python まずはこれだけでOK!基本構文講座(その5)として「関数定義、呼び出し」を紹介させていただきました。
第6回は「クラス化」についてです。それでは次回も学んでいきましょう!
次回もお楽しみに!
←Python 基本構文講座(その4)はこちら
初心者必見!Python まずはこれから!基本構文講座(その4)「分岐(if文),繰り返し(while文)」