-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_3_dz_2.py
More file actions
35 lines (30 loc) · 1.71 KB
/
Copy pathtest_3_dz_2.py
File metadata and controls
35 lines (30 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""
Задание 2
Погружение в Python | Коллекции
Пользователь вводит строку текста. Вывести каждое слово с новой строки.
✔ Строки нумеруются начиная с единицы.
✔ Слова выводятся отсортированными согласно кодировки Unicode.
✔ Текст выравнивается по правому краю так, чтобы у самого длинного
слова был один пробел между ним и номером строки.
"""
def print_sorted_numbered_words():
"""
Запрашивает у пользователя строку текста, разбивает её на слова,
сортирует слова в порядке Unicode, нумерует строки с единицы
и выводит каждое слово на новой строке, выравнивая по правому краю
так, чтобы у самого длинного слова был ровно один пробел перед номером.
"""
s = input("Введите текст: ")
words = s.split()
if not words:
return
# Сортируем по Unicode-кодировке
words.sort()
# Определяем длину самого длинного слова
max_len = max(len(w) for w in words)
# Выводим слова правым выравниванием в поле ширины max_len,
# затем пробел и номер строки
for idx, w in enumerate(words, start=1):
print(f"{w:>{max_len}} {idx}")
if __name__ == "__main__":
print_sorted_numbered_words()