請問爲什麼代碼只爲前三次迭代提供最小值和最大值的正確輸出?爲什麼代碼只能用於前三次迭代?
我前三次迭代的輸出正常工作。最小和最大變量鎖定到這些值,並不會根據新輸入進行更新。 其餘的計算(總和,數量和平均)工作正常。
[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))
你忘了投'number'到浮子在'分鐘(數,最小的)'。帶有'max'的行同樣存在問題。 – Matthias
你不是在你的'else'塊中將數字類型轉換爲'float' –