Pythonプログラムで関数の呼び出し方と関数の作り方(関数の定義)について解説します。
関数とは
def文を使い処理を1つにまとめたオブジェクトです。呼び出すことで何度でも実行することができます。
関数の呼び出し方
関数の呼び出し方は簡単です。なぜなら、あなたはこれまでに何度も関数の呼び出しを行っているからです。下記の使用例を見てください。
# 使用例1(戻り値なし)
print(“織田信長”)
# 使用例2(戻り値あり)
name = input(“好きな人の名前を入力してください:”)
使用例は2つとも見覚えがありますよね。「print()」は print 関数、「input()」は input 関数です。どちらもPythonをインストールするだけで特別な設定をせずに誰でも使える「組み込み関数」です。
使用例1では print 関数に引数(”織田信長”)を渡して処理しています。使用例2では input 関数に引数を渡しキーボードから入力した値を取り込んで処理した結果(戻り値)を変数 name に代入しています。
- 赤字の部分を「引数」(ひきすう)と呼びます。
- 「print」や「input」の部分を「関数名」と呼びます。
- 戻り値(返り値)とは、実行した関数が返す値のことです。
サンプルプログラム(ソースコード)
例1は、戻り値なしの関数の呼び出し方です。print 関数を呼び出して変数 name に代入するプログラムですが、print 関数は戻り値がないため「None」を返します。
例2は、戻り値ありの関数の呼び出し方です。str 関数を呼び出して整数を文字列にデータ型変換し変数 value に代入するプログラムです。
# 例1)関数の呼び出し(戻り値なし)
name = print("織田信長")
print(name)
# 例2)関数の呼び出し(戻り値あり)
value = str(96)
print(value, type(value)) # 引数をカンマ区切りで複数指定
サンプルプログラム(ソースコード)の保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_035.py
- エンコード:UTF-8
コマンドプロンプトでサンプルプログラム(ソースコード)を実行
実行すると、例1は「print(“織田信長”)」の部分が実行されて実行結果の2行目に「織田信長」が表示されています。また、変数 name への代入では戻り値がないため「None」が返され実行結果の3行目に「None」が表示されています。
例2は、str 関数で整数「96」を文字列にデータ型変換して変数 value に代入し print 関数の引数をカンマ区切りで value と type(value) の2つを指定し、実行結果の4行目に変数 value の「96」と type 関数で変数 value のデータ型「<class ‘str’>」を表示しています。
(trial) C:\code\py310\venv\trial>python sample_code_035.py
織田信長
None
96 <class 'str'>
(trial) C:\code\py310\venv\trial>
関数の作り方(関数の定義)
関数にはメソッドや組み込み関数など様々な呼び方があり混乱しますが、大きく分けると2種類です。つまり、自分が作った関数と自分以外の誰かが作った関数です。この記事では自分が作る関数について解説します。
関数を作る(関数の定義)には def文を使います。関数名の命名ルールは変数名と同じです。
def 関数名([引数]):
処理1
処理2(複数行も可能)
[return 戻り値]
- [ ] で囲った部分の [引数] と [return 戻り値] は必要がなければ省略可能です。
- 引数はカンマ区切りで複数指定可能です。(例 ”織田信長”, “武田信玄”, “上杉謙信”)
- 戻り値(返り値)はカンマ区切りで複数指定可能です。(例 name, age )
サンプルプログラム(ソースコード)
例1は、戻り値のない関数のプログラムです。引数の値を print 関数で表示します。
例2は、戻り値のある関数のプログラムです。引数をカンマ区切りで2つ、戻り値をカンマ区切りで3つ指定しています。また、関数の中で例1の関数を使用しています。
# 例1)関数の作り方(戻り値なし)
def sample_1(name):
print(name)
sample_1("織田信長") # 例1関数の呼び出し
# 例2)関数の作り方(戻り値あり)
def sample_2(a, b): # 引数をカンマ区切りで複数指定
c = a + b
sample_1("攻撃力 防御力 合計") # 例1関数の呼び出し
return a, b, c # 戻り値をカンマ区切りで複数指定
attack, defense, total = sample_2(92, 96) # 例2関数の呼び出し
print(attack, defense, total)
サンプルプログラム(ソースコード)の保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_036.py
- エンコード:UTF-8
コマンドプロンプトでサンプルプログラム(ソースコード)を実行
実行すると、例1では sample_1 関数の引数「織田信長」が実行結果の2行目に表示されています。
例2では sample_2 関数の引数「92」と「96」を合計し、戻り値として「92」「96」「188」の3つの値を変数 attack、defense、total にそれぞれ代入しています。代入した値は実行結果の4行目に「92 96 188」と表示されています。
また、関数の中で sample_1 関数を実行し実行結果の3行目に「攻撃力 防御力 合計」と表示されています。
(trial) C:\code\py310\venv\trial>python sample_code_036.py
織田信長
攻撃力 防御力 合計
92 96 188
(trial) C:\code\py310\venv\trial>
まとめ
- 関数とはdef文を使い処理を1つにまとめたオブジェクトのこと
- 関数は呼び出すことで何度でも実行することができる
- 関数名の命名ルールは変数名と同じ
- 引数と戻り値は必要がなければ省略可能
- 引数と戻り値はカンマ区切りで複数指定可能