簡體   English   中英

平均程序使用while循環。 無法正確計算

[英]Average program using while loop. Won't calculate correctly

i = 0
result = 0
while i < 10 :
    result += eval(input("Enter a number: "))
    i += 1
    if result < 1 :
        break
    average = result / i   
print (average)

我正在制作一個程序以計算出10個平均值,但是如果輸入一個負數,它將終止。 問題在於,如果輸入一個負數,則直到該負數大於已輸入的所有其他數字,程序才會停止。

此代碼不一定停止為負數。 當該負數使運行總數達到非正數時,它才會執行此操作。 例如,如果用戶輸入以下數字:

4
-2
4

那么運行總計是:

4
2
6

運行總計( result )絕不會為正。 因此,該break語句的條件將不成立。

如果您想在輸入負數時終止(或者根據您的邏輯輸入一個非正數),則需要檢查該數字本身 ,而不是運行總數。 像這樣:

i = 0
result = 0
value = 0;
while i < 10 :
    value = eval(input("Enter a number: "))
    if value < 1 :
        break
    i += 1
    result += value
    average = result / i   
print (average)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM