Итак, задача состоит в следующем:
«Напишите программу, которая постоянно запрашивает у пользователя целые числа, пока пользователь не введет« готово ». После ввода« готово »распечатайте наибольшее и наименьшее из числа. Если пользователь вводит что-либо, кроме действительного числа, поймайте его с помощью try / except и выведите соответствующее сообщение и проигнорируйте номер. Введите 7, 2, bob, 10 и 4 и сравните с выводом ниже. "
Я все еще новичок в Python, но, похоже, я не могу выполнить это задание самостоятельно. Я как бы хочу избежать простого копирования чужого кода, потому что преподаватель модуля Чарльз Северенс считает, что это плохая идея. Но я также устаю от этого назначения, которое, вероятно, не отражает того, что я обычно хотел бы использовать для python как программист.
Это мой код на данный момент. Кажется, что независимо от того, что я меняю, всегда возникает новая ошибка:
Пожалуйста, помогите, предложите решения и расскажите мне об ошибках, которые я делаю.
EDIT:
Я получил комментарии об ошибках отступов и хотел уточнить, что это были опечатки, которые я допустил при копировании своего кода на этот форум. В любом случае, я скорректировал свой код, и у него больше нет проблемы с отказом принять «готово» или продолжением l oop после неверного ввода. Теперь у меня возникли трудности с получением максимального и минимального значений с функцией списка или без нее. Кроме того, на данный момент я настолько застрял, что не прочь получить несколько прямых ответов с рабочим кодом.
largest = None
smallest = None
number_list = []
while True:
num = input('Enter a number:')
if num == 'done' : break
try:
num = int(num)
number_list.append(num)
except:
print ('Invalid Input')
continue
def max(num):
for largest in number_list[num]:
if largest < num:
largest = num
return largest
def min(num):
for smallest in number_list[num]:
if smallest is None:
smallest = num
if smallest > num:
smallest = num
return smallest
print ('Maximum is',max(num))
print ('Minimum is',min(num))