2016-12-28 2 views
-1

Я занимаюсь курсом Курсера, Программирование для всех с Python. Но одно из заданий 5.2 на неделе 7 привлекло мое внимание.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

Смежные вопросы