Как вывести числа в столбик?

С клавиатуры подается 5 чисел, разделенных концом строки.
Нужно вывести их на экран от большего к меньшему, также разделяя их концом строки.

Формат ввода:

12
1
45
9
10

Формат вывода:

45
12
10
9
1

Как добиться столбика на выводе?

s1 = input()
s2 = input()
s3 = input()
s4 = input()
s5 = input()

my_set = {s1, s2, s3, s4, s5}


my_set_sorted = sorted(my_set, reverse=True)

print(my_set_sorted)  

Ответы (4 шт):

Автор решения: dresqd

Можно получить элемент по индексу, используя "имя_структуры[индекс_элемента]". Индексация начинается с нуля, последний элемент можно получить по индексу -1. Пример:

my_set_sorted[0]  # первый элемент
my_set_sorted[1]  # второй элемент
my_set_sorted[2]  # последний элемент

Вариант простой, но не самый разумный - повторить пять раз конструкцию:

print(my_set_sorted[индекс_элемента])  

Вариант более изящный - использовать цикл for, итерируя вашу структуру.

Пример:

for each in my_set_sorted:
    print(each)

В данном случае - each это итератор (локальная переменная для цикла for, которая меняется после каждого выполнения тела цикла). На первой итерации each равен первому элементу из my_list_sorted, на второй итерации второму и т.д.

Также обратите внимание на то, что вы используете коллекцию 'set' тут:

my_set = {s1, s2, s3, s4, s5}

Отличие коллекции от простого list(списка) в том, что коллекция содержит уникальные элементы.

Таким образом, если на входе подаются числа 1,2,2,2,5 - set будет содержать только три числа(без повторений).

Думаю, стоит заменить сет на лист.

my_set = [s1, s2, s3, s4, s5]  # просто замените скобки с фигурных на квадратные

При использовании sorted ваш сет все равно преобразуется в список.

Также эту часть кода можно заменить:

s1 = input()
s2 = input()
s3 = input()
s4 = input()
s5 = input()
my_set = {s1, s2, s3, s4, s5}

На вот такую:

my_list = []
for each in range(5):
    my_list.append(int(input()))
→ Ссылка
Автор решения: Amgarak

Вариант с циклом и индексами уже продемонстрировали, но еще пару вариантов добавлю от себя:

s1 = input()
s2 = input()
s3 = input()
s4 = input()
s5 = input()

my_set = {s1, s2, s3, s4, s5}

my_set_sorted = sorted(my_set, reverse=True)

print('\n'.join(my_set_sorted)) # Через метод join склеиваем элементы set в одну строку с \n
print('---')
print(*my_set_sorted, sep='\n') # Распаковываем коллекцию указав * , а в самом принте указываем разделитель между элементами \n - перенос строки
→ Ссылка
Автор решения: Алексей Р

Если нужно только вывести в консоль числа в нужном порядке, то промежуточные структуры данных - множества или списки - не нужны.
В генераторе получаем введенные данные и преобразуем в числа, которые из генератора сразу отдаем в sorted. sorted возвращает список, который распаковываем и передаем в print(), где и печатаем через разделитель - перевод строки.

print(*sorted((int(input()) for _ in range(5)), reverse=True), sep='\n')
45
12
10
9
1
→ Ссылка
Автор решения: Ketty
arr = []

for i in range(5):
 a = int(input())
 arr.append(a)

arr = sorted(arr)
arr = arr[::-1]

for i in arr:
    print(i, end = '\n')
→ Ссылка