LoginSignup
0
0

More than 3 years have passed since last update.

[光-Hikari-のPython]06章-04 関数(引数と戻り値3)

Posted at

[Python]06章-04 引数と戻り値3

今まで書いた関数では、引数が数値や文字列の変数の場合だった場合について説明しました。
今回はリストの変数を渡すことを考えてみましょう。特に難しいことはなく、今まで通りにリストを作成し、リストの変数を渡すのみです。

リストの受け取り

今回は以下の要件のプログラムを作成します。

国語・数学・英語のテストの点数を入力し、それを1つのリストにまとめて関数内で平均点を求めるプログラムを作成してください。なお、平均点の出力は関数内で行わないようにしてください。

chap06の中に、samp06-04-01.pyというファイル名でファイルを作成し、以下のコードを書いてください。

samp06-04-01.py
def test_clac_func(test_data_ls):
    #いったん、リストの中身を出力します。
    print(test_data_ls)

    #sum関数でリスト内の数値をすべて足すことができる。以下は平均を求める。
    avg = sum(test_data_ls) / len(test_data_ls)

    return avg  #求めた平均を呼び出し元の関数へ返す


##各科目の点数を入力
jpn = int(input('国語の点数:'))
math = int(input('数学の点数:'))
eng = int(input('英語の点数:'))

##点数をリスト化
test_data_ls = [jpn, math, eng]
##リストを実引数として、関数を呼び出す
avg = test_clac_func(test_data_ls)

print(f'平均点:{avg}')

【実行結果】
国語の点数:75
数学の点数:80
英語の点数:72
[75, 80, 72]
平均点:75.66666666666667

今回、3科目の入力後に、それら値をtest_data_lsという変数としてリスト化しています。このリストをtest_clac_func関数の実引数として関数を呼び出しています。
関数内での処理は特に問題ないかと思いますが、sum関数でリスト内の数値をすべて足すことができます。

リストを渡しても呼び出される関数は仮引数としてリストを受け取っていることがわかったかと思います。

演習問題

演習問題を用意しました。ぜひ解いてみてください。プログラムはchap06内に作成してください。使用する変数名は好きな変数名を指定してかまいません。

【1】2つの数値a, bを入力して、大きい値を出力するプログラムを作成してください。ただし、関数を利用するようにしてください。

【実行結果】
数値aを入力してください:2
数値bを入力してください:4
4のほうが大きいです。

最後に

リストは本当によく出てくるので、実際にそれを関数に適用するといったことは多々あります。
特に今まで学んだ文字列や数値の変数と扱いは同じなので、特に迷うことはなかったかと思います。リストを引数として渡すこともできるということを覚えておいてください。

【目次リンク】へ戻る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0