所以我提交了一個關於基本python的Cousera課程(我對編寫代碼非常感興趣)。有效。但是,我發現了一個錯誤(我很高興我能看到並因爲它存在而傷心欲絕)。Python 2.7調試基本代碼
問題是,如果數字串中的最小數字是的第一個數字,因爲它被最大變量吸收而不是最小變量。我將如何防止這種情況發生?
在此先感謝!下面
代碼:
largest = -1
smallest = None
while True:
try:
num = raw_input('number\n')
float(num)
if num > largest:
largest = num
elif smallest is None:
smallest = num
elif smallest > num:
smallest = num
except:
if num =="Done":
print "Maximum is", largest
print "Minimum is", smallest
break
print "Invalid input"
重新分配NUM不僅僅是好的措施,這是必要的! OP的'float(num)'示例將輸入轉換爲一個float,然後立即丟棄該float! – turbulencetoo
@turbulencetoo - Python變量沒有輸入,他只是調用'float(num)'而無需重新分配,讓它將異常向下引發到標記塊。我做到了,所以十進制數字不能被解釋和比較爲字符串。 –
我很驚訝地發現有一個''''定義可以讓你比較'str'和'int',通常python對這些比較是嚴格的。 – turbulencetoo