2017-09-27 29 views
1

請問爲什麼代碼只爲前三次迭代提供最小值和最大值的正確輸出?爲什麼代碼只能用於前三次迭代?

我前三次迭代的輸出正常工作。最小和最大變量鎖定到這些值,並不會根據新輸入進行更新。 其餘的計算(總和,數量和平均)工作正常。

[enter image description here][1] 
count= 0 
sum=0 
average=0 
minimal=None 
maximum=None 
while True: 
    number=raw_input("Enter a number: ") 
    try: 
     if (number=='done'): 
      break 
     else: 
      count=count+1 
      sum=sum+float(number) 
      if minimal==None: 
       minimal=float(number) 
       maximum=float(number) 
      else: 
       minimal=min(number,minimal) 
       maximum=max(number,maximum) 
       print maximum 
       print minimal 
      average=sum/count 
      #print ("Calc done") 
    except: 
     print ("Invalid input") 
print("Count: %d, Sum=%d and Average=%d" %(count,sum,average)) 
print("smallest number is %d" %minimal) 
print("largest number is %0.2f" %float(maximum)) 
+1

你忘了投'number'到浮子在'分鐘(數,最小的)'。帶有'max'的行同樣存在問題。 – Matthias

+0

你不是在你的'else'塊中將數字類型轉換爲'float' –

回答

0

下面的代碼有效。請參閱差異:

count= 0 
sum=0 
average=0 
minimal=None 
maximum=None 
while True: 
    number=raw_input("Enter a number: ") 
    try: 
     if (number=='done'): 
      break 
     else: 
      count=count+1 
      sum=sum+float(number) 
      if minimal==None: 
       minimal=float(number) 
       maximum=float(number) 
      else: 
       minimal=min(float(number),minimal) 
       maximum=max(float(number),maximum) 
       print maximum 
       print minimal 
      average=sum/count 
      #print ("Calc done") 
    except: 
     print ("Invalid input") 
print("Count: %d, Sum=%d and Average=%d" %(count,sum,average)) 
print("smallest number is %d" %minimal) 
print("largest number is %0.2f" %float(maximum)) 
+1

通常更好的辦法是快速解釋它們之間的區別。 – DobromirM

1

在你的函數調用min(number,minimal)max(number,maximum),你是不是鑄造number爲float。這必須完成,因爲minimalmaximum是浮動類型。

嘗試用float(number)替換參數number,像這樣:

minimal=min(float(number),minimal) 
maximum=max(float(number),maximum) 
+0

謝謝你的回覆。這解決了這個問題。我曾考慮過這個問題,因此在if條件中添加了類型轉換,並假定在else塊之前總是會執行塊,但最小值和最大值已經被轉換爲浮點值。我仍然不明白,爲什麼它的前幾次迭代(沒有浮動(數字)在其他塊我的意思是)。 – Apurva

相關問題