python input関数 平均 求め方

python

【Python】入力した数値を加算して、ある所で入力値の平均値の求める【課題あり】

こんにちは。

 

今回はこれまでの知識を整理して課題を解いていきましょう。これまでの学習の流れです。

 

四則演算、数値列、文字列についてまとめた記事については、以下の記事を参照ください。

STEP 1
python コード サンプル 覚え書き
【Python】数値と文字列について【初心者向け】

続きを見る

変数・論理値・演算子については以下の記事をご参照ください。

STEP 2
python コード サンプル 覚え書き
【Python】変数・論理値・演算子について【初心者向け】

続きを見る

関数の基本については以下の記事をご参照ください。

STEP 3
python コード サンプル
【Python】関数の基本について【初心者向け】

続きを見る

オブジェクトとメソッドの使い方については以下の記事をご参照ください。

STEP 4
python コード サンプル
【Python】オブジェクトとメソッドについて【初心者向け】

続きを見る

if, elif, else文の使い方【制御構文】については以下の記事をご参照ください。

STEP 5
Python 条件分岐 if文
【Python】制御構文・条件分岐の基本について【動画・画像付きで解説】

続きを見る

while文の使い方【繰り返し構文】については以下の記事をご参照ください。

STEP 6
Python 条件分岐 繰り返し while文
  【Python】while文の使い方について【繰り返し構文の基本】

続きを見る

for文の使い方については以下の記事をご参照ください。

STEP 7
Python for文 繰り返し構文
【Python】for文の使い方について

続きを見る

 

 今回の課題を解くための「理解度の目標」です

  • 数値を入力・加算し、平均値の求める事ができる
  • while構文, break の使い方を理解している
  •  if文を理解している
  •  append の使い方を理解している
  •  list[] length[]の使い方を理解している

 

課題内容としては、「参加者の所持金を入力していくような指示を与え、0円が出た時点で指示を中止し、所持金の総和が出してその平均値を求める」プログラムを作成するというものです。

 

仕様は以下になります。 

  • while を使って無限ループを作成する
  • 「あなたの所持金を教えてください:」と表示して、所持金の金額(整数値)を入力する
  • 平均金額は「所持金の合計値 / 参加者の人数」で求められるので、一旦、入力された所持金を合計値に加算する
  • 0 と入力されたら、そこで繰り返し処理を終了する
  • 最後に「皆さんの所持金の金額の平均は○○円です」と表示する

これを目標に学習していきます。では早速みていきましょう。

制御構文の使い方の復習

Python 制御項文

制御構文を理解する為に有用な動画

制御構文(if文)|中学生でも分かるPython入門シリーズ

制御構文(for文)|中学生でも分かるPython入門シリーズ

制御構文(for文/応用)|中学生でも分かるPython入門シリーズ

制御構文(break文・continue文)|中学生でも分かるPython入門シリーズ

Python3 programming tutorial : While loop

こちらは英語教材ですが、while構文についてサラッと解説しており、分かりやすいので是非視聴してみてください。

list構文とappendメソッド

list構文は list = [ ] のとする事で初期化する事が出来ます。更に、append を使用する事で list に要素を加える事が出来ます。

 

また、list[] に含まれている項目の要素を算出する際には length[] を使用すると確認する事が出来ます。

 

プログラムはlist[] を初期化してから appned メソッドを利用して項目を増やしていき、最後に length で項目数を確認するという流れで構成されます。

以下にappendメソッドに関する参考記事になります。

関連記事
Python append 使い方
【Python】appendの使い方のまとめ【基本から応用まで】

続きを見る

list構文を理解する為に有用な動画

複数の変数を扱おう|中学生でも分かるPython入門シリーズ

この動画では listとtupple の違いについても解説していますが、tuppleについては今後別の項でも詳しく扱います。まずはlistのappendの使い方について学習しましょう。

Python Tutorial for Beginners | list in Python

こちらは英語教材ですが、Teluskoさんの教材は分かりやすくオススメです。

まとめ|課題

python input関数 平均 求め方

課題内容

もう一度課題内容のおさらいです。


課題:「参加者の所持金を入力していくような指示を与え、0円が出た時点で指示を中止し、所持金の総和が出してその平均値を求める」

仕様: 

  • while を使って無限ループを作成する。
  • 「あなたの所持金を教えてください:」と表示して、所持金の金額(整数値)を入力する。
  • 平均金額は「所持金の合計値 / 参加者の人数」で求められるので、一旦、入力された所持金を合計値に加算する。
  • 0 と入力されたら、そこで繰り返し処理を終了する。
  • 最後に「皆さんの所持金の金額の平均は○○円です」と表示する。

まずは以下の解答を見ずにご自身でコードを書いてみてください。

解答①|入力した数値を加算した平均値の求め方

それでは上に記載したWhile 構文, list, append, を使用して入力した数値を加算した平均値を求めてみます。

In[]

money_list = []
while True:
    money = int(input("あなたの所持金を教えてください:"))   
    if money == 0:
        break
    money_list.append(money)

s = sum(money_list)
n = len(money_list)
average = s / n
    
print("みなさんの所持金の平均額は",average,"です。")

以上がコードになりますが、ポイントについて説明していきます。

 

ポイントとしては、所持金が "0" を入力させた時点で break を発動させて while構文 を終了する事です。

 

その上で、list構文、append メソッドを駆使して所持金を加えていきます。

 

最終的に sum, len で合計数、人数を算出し、sum / len で平均値を算出します。

 

input した結果の一例を以下に記載しておきます。

Out[]

あなたの所持金を教えてください:870
あなたの所持金を教えてください:600
あなたの所持金を教えてください:300
あなたの所持金を教えてください:100
あなたの所持金を教えてください:1200
あなたの所持金を教えてください:908972
あなたの所持金を教えてください:12
あなたの所持金を教えてください:0
みなさんの所持金の平均額は 130293.42857142857 です。


Process exited with code: 0

 

解答②|入力した数値を加算した平均値の求め方

別の解答例も示します。

In[]

money = []
while True :
    money.append(int(input("あなたの所持金を教えてください:")))
    if 0in money:
        money.remove(0)
        break
print("皆さんの所持金の平均は", sum(money)/len(money),"円です")

Out[]

あなたの所持金を教えてください:500
あなたの所持金を教えてください:200
あなたの所持金を教えてください:300
あなたの所持金を教えてください:100
あなたの所持金を教えてください:2
あなたの所持金を教えてください:1
あなたの所持金を教えてください:0
皆さんの所持金の平均は 183.83333333333334 円です

 

解答③|入力した数値を加算した平均値の求め方

更に、別の解答例も示します。

In[]

money = []
while True :
    money.append(int(input("あなたの所持金を教えてください:")))
    if 0 in money : break
print("皆さんの所持金の平均は", sum(money)/(len(money)-1),"円です")

Out[]

あなたの所持金を教えてください:100
あなたの所持金を教えてください:200
あなたの所持金を教えてください:300
あなたの所持金を教えてください:0
皆さんの所持金の平均は 200.0 円です

 

解答④|入力した数値を加算した平均値の求め方

これは生徒の方から頂いた解答例ですが、紹介させて頂きます。

In[]

total_money = 0
h_count = 0
while True :
    money = int(input("あなたの所持金を教えてください:"))
    if money == 0:
        break
    total_money += money
    h_count += 1
avarage = total_money/h_count
print("皆さんの所持金の金額の平均は",avarage,"円です")

Out[]

あなたの所持金を教えてください:300
あなたの所持金を教えてください:200
あなたの所持金を教えてください:100
あなたの所持金を教えてください:0
皆さんの所持金の金額の平均は 200.0 円です

 

決してコードが短ければ良いというわけではありませんが、様々なコードの記載方法があります。

 

色々な方法を試して頂けますと幸いです。

 

また、もし理解できない箇所があったり、不明な点があればお問い合わせフォームよりご質問頂ければ幸いです。

 

今回は以上となります。


-python
-