Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Pythonでリストの合計と平均を関数を使って出そうとしたらエラーが出てしまいました 解決して欲しいです

解決したいこと

リストの合計と平均を正しく表示することです

入力したコード

scores = [10, 20, 30, 40, 50]

def average_sum(scores):
    su_m = sum(scores)
    avg = sum(scores) / len(scores)
    return [float(su_m), float(avg)]

def show_avgsum(su_m, avg):
    print('合計{}、平均{}。'.format(su_m, avg))

show_avgsum(su_m, avg)

発生したエラー

---------------------------------------------------------------------------

      9     print('合計{}、平均{}。'.format(su_m, avg))
     10 
---> 11 show_avgsum(su_m, avg)

NameError: name 'su_m' is not defined

自分で試したこと

ここまでが限界でした。

0

1Answer

エラー「NameError: name 'su_m' is not defined」の意味を考えてみます。Google翻訳にかけると「名前 'su_m'が定義されていません」という意味だとわかります。

さて、show_avgsum(su_m, avg)とはsu_mavgを引数の値として、関数show_avgsumを呼び出す、という意味ですが、あなたはsu_mavgをまだ定義していないのでエラーになっています。

(おそらくあなたの意図した通りに)動くようにするならば次のようにします。


scores = [10, 20, 30, 40, 50]

def average_sum(scores):
    su_m = sum(scores)
    avg = sum(scores) / len(scores)
    return [float(su_m), float(avg)]

def show_avgsum(su_m, avg):
    print('合計{}、平均{}。'.format(su_m, avg))

result = average_sum(scores)
show_avgsum(result[0], result[1])

細かくサンプルコードが書かれているような参考書を探して、それを使って勉強してみるといいかもしれません。

0Like

Comments

  1. @harada211

    Questioner

    回答ありがとうございます 無事正しい計算結果が出ました
    戻り値を書いただけでは定義したことにはならないんですね!勉強になりました。

Your answer might help someone💌