Python入門:関数の定義
関数の定義方法
関数とは、プログラミングにおいて、決められた処理を行う機能のことです。
例えば、print関数は文字を出力する処理を行います。print関数は、Pythonの中であらかじめ定義されており、Pythonでプログラムを組んでいるときにprint関数を呼び出すことで文字を出力する処理を行うことができます。
このとき、print関数の()の中に出力する文字列を入れます。このように、()の中に入れる値を引数といい、関数を定義するときに指定します。指定する引数の数は自由で、なくてもかまいません。
関数が呼び出された時の処理
関数を呼び出すときに、実引数は仮引数に置き換わって処理されます。 また、基本的に同じ名前の関数は定義することはできません。
#2つの引数を足し合わせて表示する関数add
def add(a,b) :
print(a+b)
#2つの引数を引いて表示する関数minus
def minus(a,b) :
print(a-b)
add(3,4)
add(8,4)
minus(5,4)
minus(9,3)
12
1
6
上のコードでは、2つの引数を足し合わせて表示する関数addと2つの引数を引いて表示する関数minusを定義して呼び出しています。
上のコードでは、関数の処理は一行しか書いてないですが、たいていの場合はもっと長くなることが多いです。もし関数がなければ、同じ内容の処理を何度も書く羽目になります。それを解決してくれるのが関数のメリットです。
プログラムを組んでいるとき、同じ処理が連発すれば、関数の使い時です。
戻り値
関数を実行た後に、結果として返す値のことを戻り値や返り値といいます。
戻り値を返す関数としてinput関数があげられます。左辺に変数、右辺にinput関数を置くと、input関数が入力された文字列に置き換わり、変数に代入されます。
関数を定義するときに戻り値を指定したいときは、return文を使います。
関数が呼び出された時の処理
...
return 戻り値
return文は関数のブロックの最後に書きます。
#2つの引数を足し合わせて返す関数add
def add(a,b) :
return a+b
#2つの引数を引いて返す関数minus
def minus(a,b) :
return a-b
print(add(1,3))
print(minus(4,2))
2
練習問題
では、これまでの内容をもとに次のプログラムを作ってみましょう!
以下の条件を満たす電卓のプログラムを作成する。
- プログラムが始まるとどの四則演算で計算するか選択する。
- それぞれの四則演算ごとに関数が存在する。
- 値1と値2を入力すると計算結果が返ってくる。
- 最後に計算を続けるか選択する。
- もし計算を続けるなら前の計算結果を値1にする。
解答例※あくまで一例です。
(1)
#四則演算の関数
def add(a,b) :
return a+b
def minus(a,b) :
return a-b
def multiply(a,b) :
return a*b
def divide(a,b) :
return a/b
conti = True #計算を続けるかどうかを判定する
method = 1 #計算方法を指定する変数
result = None #計算結果を保存する変数
print("やあ、電卓だよ!")
while conti :
#計算方法を指定
method = int(input("計算方法を選んでね!\n1:足し算\n2:引き算\n3:掛け算\n4:割り算\n>>"))
if 1 > method or method > 4 :
print("1から4の数字で指定してな?")
continue
#値1の処理※計算結果が出ていれば計算結果を値1とする
if result == None:
num1 = int(input("値1を指定してね!>>"))
else :
num1 = result
#値2の処理
num2 = int(input("値2を指定してね!>>"))
#methodで呼び出す四則演算の関数を指定する
if method == 1 :
result = add(num1,num2)
elif method == 2 :
result = minus(num1,num2)
elif method == 3 :
result = multiply(num1,num2)
elif method == 4 :
result = divide(num1,num2)
#計算結果を表示して計算を続けるかを入力させる]
print("計算結果:{result}\n")
conti = int(input("計算を続ける?\n1:続ける\n2:終わる\n>>"))
conti = True if conti == 1 else False
やあ、電卓だよ!
計算方法を選んでね!
2:引き算
3:掛け算
4:割り算
>>1
値1を指定してね!>>3
値2を指定してね!>>4
計算結果:7
計算を続ける?
1:続ける
2:終わる
>>1
計算方法を選んでね!
1:足し算
2:引き算
3:掛け算
4:割り算
>>4
値2を指定してね!>>7
計算結果:1.0
計算を続ける?
1:続ける
2:終わる
>>2
最後に
この記事では、Pythonでの関数の定義について解説しました。
もっとPythonを学びたい!という方はこちらの記事でPythonの基本的な構文を学習することが出来ますのでぜひ立ち寄ってみてください!