2017-06-24 2 views
-1

私は、任意の数の正の数とゼロを取り入れることができるプログラムの部分を書いており、プログラムを終了するには負の数を書くことができます。私は今これの平均を印刷したいと思う。平均をどのように印刷しますか?whileループを使用するwhileループで格納された文字列の平均をどのように出力しますか?

これまでのビット。

i = int(eval(input('Enter a number positive number. Enter a negative number to exit: '))) 
while i >= 0: 
    i = int(eval(input('Enter a number positive number. Enter a negative number to exit: '))) 
+1

ループの中で 'i =' try 'i + ='の代わりに。負でない数字が追加されるたびにインクリメントする 'j'カウンタも追加してください。最後に印刷するi/j(平均値) – Nullman

+10

神様と神聖なものすべての愛のために、[eval'を削除してください](https://stackoverflow.com/questions/1832940/why-is) -using-eval-a-bad-practice)を使用します。 –

+9

なぜ 'eval()' *と* 'int()'の両方を使用していますか? 'eval()'でなければ、どちらか一方を使用してください。 –

答えて

1

j = 0 
total = 0 
while True: #"infinite" loop 
    i = int(input('Enter a number positive number. Enter a negative number to exit:')) 
    if i < 0: #loop escape clause 
     break 
    total += i 
    j+=1 
if j > 0: #avoid division by zero 
    average = total/j #rounded average 
else: 
    average = 0 
+0

コードをテストすると、負の数に達したときの平均は表示されません。負の数を入力すると、平均を見ることができます。 –

+2

@KagamineLenスクリプトの最後に 'print(average)'を実行してください。 – jacoblaw

+0

@ PM2Ringあなたは正しいですが、私は忘れてしまったのは組み込みです。私は自分の答えを編集した – Nullman

関連する問題