2016-09-25 2 views
0

У меня есть два вопроса:Как отобразить наибольшее и наименьшее число в питона

  1. Как вывести на экран наибольшее и наименьшее число, которое принимает 5 чисел из пользовательского ввода

  2. Как можно проверить пользователь ввод для ввода только чисел.

Вот мой код:

input_set = list() 
num = input("Enter how many elements you want:") 
print("Enter numbers in array:") 
for i in range(int(num)): 
    n = int(input("input number :")) 
    input_set.append(int(n)) 
print ("ARRAY: ", input_set) 
largest = input_set[0] 
for i in range(len(input_set)): 

    if input_set[i] > largest: 
     greatest = input_set[i] 

print("Largest number is :", greatest) 

smallest = input_set[0] 
for i in range(len(input_set)): 

    if input_set[i] < largest: 
     smallest = input_set[i] 

print("Smallest number is :", smallest) 
+2

Ваш вопрос: * "Как отобразить наибольшее и наименьшее число в python "* или это: *« Как я могу проверить ввод пользователя, может принимать только цифры ». *? –

+1

Читайте об обработке исключений. Вы хотите, чтобы ваше 'int' кастинг с помощью' try/except', чтобы вы могли обрабатывать случаи, когда вы передаете не номер. Кроме того, @ JimFasarakis-Hilliard поднимает хороший момент, ваш вопрос заголовок задает одно, а в вашем вопросе вы спрашиваете другого. Пожалуйста, убедитесь, что релевантность и последовательность сохраняются между вашим названием и тем, что вы задаете в своем вопросе. – idjaw

ответ

1

Это один принимает ввод до пользователь вводит допустимые входные

input_set = list() 
num = input("Enter how many elements you want:") 
print("Enter numbers in array:") 
for i in range(int(num)): 
    while True: 
     try: 
      n = int(input()) 
     except ValueError: 
      print("Enter a number") 
      continue 
     else: 
      break 
    input_set.append(int(n)) 
print ("ARRAY: ", input_set) 
largest = input_set[0] 
for i in range(len(input_set)): 

    if input_set[i] > largest: 
     print('greatest '+str(largest)) 
     print('current '+str(input_set[i])) 
     largest = input_set[i] 

print("Largest number is :", largest) 

smallest = input_set[0] 
for i in range(len(input_set)): 

    if input_set[i] < largest: 
     smallest = input_set[i] 

print("Smallest number is :", smallest) 
+0

во время выполнения этого кода я дал пользователю ввод как ** массиву: [3, 45, 35, 67, 34] ** мой выход показан как: 'наибольший номер: 34 Наименьший номер: 3' –

+0

снова отредактировал ответ – XZ6H

1

Вот как я могу изменить свой код, указанный выше. Это выполняет две вещи: убедитесь, что вход в цифровую форму, и очищает поиск самых больших/наименьших чисел в массиве. Конечно, он будет бесконечно циклически, если пользователь не вводит цифру, но вы всегда можете добавить максимальное количество попыток к каждому циклу (я оставляю это как упражнение для читателя).

Edit: Исправлена ​​ошибка ...

input_set = list() 
num = None 
while num is None: 
    ret = input("Enter how many elements you want:") 
    try: 
     num = int(ret) 
    except ValueError: 
     print ("Invalid input, please enter a digit.") 

print("Enter numbers in array:") 
for i in range(num): 
    n = None 
    while n is None: 
     ret = input("input number :") 
     try: 
      n = int(ret) 
      input_set.append(n) 
     except ValueError: 
      print ("Invalid input, please enter a digit.") 

print ("ARRAY: ", input_set) 
print ("Largest number is :", max(input_set)) 
print ("Smallest number is :", min(input_set)) 
Смежные вопросы