引数リスト

 関数で処理を行うのに必要なデータを、関数を呼び出す側からもらうためには引数を指定します。その引数を「仮引数」と呼びます。仮引数は実際のデータがあるのではなく、あると仮定して処理を記述することができます。

 一方、関数を呼び出す側は仮引数が定義されている場合は、仮引数に応じたデータを渡す必要があります。そのデータを「実引数」と呼びます。実引数は処理してもらいたい実際のデータを指定します。

 関数を定義するときには引数を指定しないか、指定するかを決めることができます。また、指定する場合、複数指定することができます。複数指定するときはカンマで区切って指定します。これから、引数を指定するいくつかのパターンを見てみましょう。

■ 仮引数を指定しない

 関数を定義するときに、関数を呼び出す側からデータをもらう必要のない場合は、仮引数リストは指定しません。

例:
 def func():
  print('関数の処理')

○ プロジェクト

 次のようにファイルを作成してください。

プロジェクトの種類 Pythonアプリケーション
プロジェクト名 Chapter4

○ ファイル

 Chapter4プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 functiontest1.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #関数を定義する
  2. def showData():
  3.  #表示したいデータを変数に格納する
  4.  message = 'Pythonは楽しい'
  5.  #データを表示
  6.  print("入力したデータは「{}」です。".format(message))
  7. #関数の呼び出し
  8. print('これからshowData関数を呼び出します。')
  9. showData()
  10. print('showData関数を呼び出しました。')

○ フローチャート

関数フローチャート

○ 実行結果

これからshowData関数を呼び出します。
入力したデータは「Pythonは楽しい」です。
showData関数を呼び出しました。

○ 解説

 2~7行目では、関数を定義しています。この関数は呼び出されると、変数messageに表示したいメッセージを格納し、格納したデータを表示します。Pythonでは、defなどで指定されているものは呼び出されたら実行します。そのため、2~7行目は呼び出されるまで実行しません。

 10行目から通常の処理が記述されているので、その行から実行されます。11行目ではshowData関数を呼び出しています。showData関数は仮引数が指定されていないので、呼び出す側でも実引数を指定しません。今回は実引数を指定するとエラーとなります。

■ 仮引数を1つ指定する

 関数の定義で1つ仮引数を指定する方法と、それを呼び出す方法を確認しましょう。

例:
 def func(message):
  print(message)

○ ファイル

 Chapter4プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 functiontest2.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #関数を定義する
  2. def showData(message):
  3.  #データを表示する
  4.  print("入力したデータは「{}」です。".format(message))
  5. #表示したいデータを変数に格納する
  6. data= '関数の外でメッセージ用意'
  7. #関数の呼び出し
  8. print('これからshowData関数を呼び出します。')
  9. showData(data)
  10. print('showData関数を呼び出しました。')

○ フローチャート

関数フローチャート

○ 実行結果

これからshowData関数を呼び出します。
入力したデータは「関数の外でメッセージ用意」です。
showData関数を呼び出しました。

○ 解説

 8行目から、通常のプログラムが記述されています。「functiontest1.py」と比べると、今回は関数外で変数dataに表示したいメッセージを格納しています。11行目でshowData関数を呼び出していますが、その時に変数dataを実引数に指定しています。今回は実引数を指定しないとエラーになります。

■ 仮引数を複数指定する

 関数の定義で複数仮引数を指定する方法と、それを呼び出す方法を確認しましょう。今回は2つの引数を扱います。

例:
 def add(num1, num2):
  print(num1 + num2)

○ ファイル

 Chapter4プロジェクトに次のファイルを追加してください。

ファイルの種類 空のPythonファイル
ファイル名 functiontest3.py

サンプルダウンロード

○ プログラム

 次のようにプログラムを入力してください。

  1. #関数を定義する
  2. def showData(message, count):
  3.  #指定した回数ループ
  4.  for i in range(count):
  5.   #データを表示
  6.   print("指定されたデータは「{}」です。".format(message))
  7. #表示したいデータを変数に格納する
  8. num = 5
  9. data = 'みかんが食べたい'
  10. #関数の呼び出し
  11. print('これからshowData関数を呼び出します。')
  12. showData(data, num)
  13. print('showData関数を呼び出しました。')

○ フローチャート

関数フローチャート

○ 実行結果

これからshowData関数を呼び出します。
指定されたデータは「みかんが食べたい」です。
指定されたデータは「みかんが食べたい」です。
指定されたデータは「みかんが食べたい」です。
指定されたデータは「みかんが食べたい」です。
指定されたデータは「みかんが食べたい」です。
showData関数を呼び出しました。

○ 解説

 2~6行目では、関数を定義しています。この関数は仮引数を二つ用意しています。文字列と整数値を受け取ります。4行目から受け取った整数値分だけ繰り返して、受け取った文字列を表示します。今回はshowData関数の外で表示したい文字列と、繰り返したい回数を準備しています。14行目では、showData関数を呼び出す時に表示したいデータと、表示する回数を渡しています。この二つを渡さないとエラーになります。

前へ   次へ