2016-12-28 29 views
-1

我一直在使用Coursera的課程,用Python爲每個人編程。但是第七週的5.2作業之一引起了我的注意。Coursera Python:爲每個人分配編程5.2

其目的是讓用戶輸入一些數字並輸入完成,當他輸入他想要的所有數字時。之後,輸出應該是他輸入的最大數量和最小數量。

這是問題所在。如果輸入負數,則不顯示。假設我輸入:32,55,10,-2 76.輸出應該是76和-2。但真正發生的是76和10被打印出來。

你們有什麼想法爲什麼發生這種情況?

這是代碼。

largest = None 
smallest = None 
while True: 
    try: 
     num = input("Enter a number: ") 
     if num == "done": 
      break 
     print (num) 

     num = int(num) 

     for number in range(num): 

      if largest is None or largest < num: 
       largest = num 
       continue 
      elif smallest is None or smallest > num: 
       smallest = num  
    except ValueError: 
     print("Please, enter only numbers.") 

print ("Maximum", largest) 
print ("Minimum", smallest) 
+2

你怎麼看'的範圍(-2)'呢? –

+1

爲什麼你甚至在一個範圍內循環? – TigerhawkT3

回答

2

那麼,問題是,爲什麼你迭代一個int如果它不是一個列表? 你可以用,而做出來一個循環:

largest = None 
smallest = None 
while True: 
    try: 
     num = input("Enter a number: ") 
     if num == "done": 
      break 
     print (num) 
     num = int(num) 
     if largest is None or largest < num: 
      largest = num 
     elif smallest is None or smallest > num: 
      smallest = num 
    except ValueError: 
     print("Please, enter only numbers.") 

print ("Maximum", largest) 
print ("Minimum", smallest) 

輸出:

Enter a number: 12 
12 
Enter a number: 56 
56 
Enter a number: 34 
34 
Enter a number: -2 
-2 
Enter a number: 17 
17 
Enter a number: done 
Maximum 56 
Minimum -2 
+0

'continue'不是必需的,因爲該循環中唯一的其他代碼是'elif'塊,如果執行'if',它將不會運行。 – TigerhawkT3

+0

沒錯,沒看到。 – Inconnu