Как использовать max () и min () для двух или трех чисел di git из пользовательского ввода - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь найти максимальные и минимальные значения серии чисел, введенных пользователем. Я получаю только ошибку semanti c, где значения max и min являются последними числами, введенными пользователем.

Это то, что я пробовал:

largest = None
smallest = None
while True:
    snum = input("Enter a number: ")
    if snum != "done" :
        try:
            largest  = max(snum)
            smallest = min(snum)
        except:
            print("Invalid Input")
            continue

    else:
        break

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

Я использовал блоки try и except для проверки ошибок ввода пользователя. Я проверил другие подобные вопросы, такие как: Как отобразить максимальное и минимальное значения из пользовательского ввода , но я не совсем понял ответ.

1 Ответ

0 голосов
/ 08 марта 2020

Ваша первая проблема здесь:

inum = int(snum)
largest  = max(snum)
smallest = min(snum)

Вы конвертируете пользовательское значение (которое всегда появляется в виде строки) в целое число и сохраняете его в inum. Но тогда вы звоните max и min с исходным строковым значением, а не с номером.

Ваша вторая проблема в том, что вы проверяете только один номер за раз - snum всегда заполняется самым последним номером, а другие номера забываются.

Вам необходимо сохранить каждый введенный номер в списке, а затем вызвать max и min в списке в целом.


Вот потенциальное решение:

num_list = []

while True:
  user = input("Enter a number: ")
  if user == "done":
    break
  try:
    inum = int(user)
    num_list.append(inum)
  except:
    print("Invalid input!")

print("The largest number was", max(num_list))
print("The smallest number was", min(num_list))
...