全会員の合計と平均
中段 / 目安 25分
松田さんが台帳を抱えて事務局に戻ってきました。「今月の全会員のポイント、合計と平均を出してくれんかね。会長に報告があるんだ」。手元にあるのは、会員1人ぶんのポイントが順に並んだリストだけです。
合計はまだしも、平均は割り算です。会長に見せる紙に 3125.6666666666665 と並んでいたら、たぶん怒られます。小数第1位までに整えて渡してください。
完成条件
ポイントのリストを受け取り、報告用の1行を組み立てて返す関数 summarize_points(points) を作ってください。
- 返す文字列の形は
合計 4300pt / 平均 1075.0ptです - 合計は整数のまま、平均は小数第1位までにします
- 平均は四捨五入ではなく、書式指定にまかせてかまいません
- リストが空のときは
対象者なしという文字列を返します
進め方
白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。
開かずに10分粘って進まないなら、①だけ開けてください。粘る時間そのものには価値がありません。価値があるのは、自分で書いた行が動いた瞬間です。
合計を出す道は2本あります。自分で足し上げる道と、既にある道具を呼ぶ道です。どちらでも通りますが、一度は自分で足し上げてみてください。中で何が起きているかが分かります。
空のリストを先に片づけてから本題に入ると、割り算で慌てずに済みます。
要件
- 関数名は summarize_points、引数はポイントのリスト1つとすること
- 返す文字列の形は「合計 4300pt / 平均 1075.0pt」であること
- 平均は小数第1位まで表示すること
- リストが空のときは「対象者なし」を返すこと
入出力例
summarize_points([1200,800,1500,800]) → "合計 4300pt / 平均 1075.0pt"
summarize_points([100,200,400]) → "合計 700pt / 平均 233.3pt"
summarize_points([980]) → "合計 980pt / 平均 980.0pt"
summarize_points([]) → "対象者なし"ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです
ヒント 2ヒント 1 を開くと読めます
ヒント 3ヒント 2 を開くと読めます
編集 ゆめさく編集部