Сделал 16 задание

This commit is contained in:
parent e3ab2d1646
commit 581379e6d9

59
lesson.16.py Normal file
View file

@ -0,0 +1,59 @@
''' ****** Задание 16 из 20 *********
* Вы снова работаете над лентой новостей для сайта.
Теперь заголовки могут занимать несколько строк, но при этом всё равно нужно соблюдать лимит: если заголовок слишком длинный — он должен быть сокращён и завершён многоточием ....
Эта задача поможет вам научиться учитывать длину строк, переносы и условия обрезки текста.
Напишите программу, которая по заданному количеству строк и максимально допустимой длине:
выводит заголовок, при необходимости обрезая его;
если заголовок слишком длинный — заменяет последние символы на ...;
если строки заканчиваются слишком коротко, ... может перейти в предыдущую строку.
Формат ввода
Вводится натуральное число
L — необходимая длина заголовка.
Вводится натуральное число
N — количество строк в заголовке новости.
В каждой из последующих
N строк записано по одной строке заголовка.
Формат вывода
Сокращённый заголовок.
Примечание
Многоточие учитывается при подсчёте длины заголовка.
Символ перевода строки при подсчёте длины не учитывается.
Подсказка
Учтите следующие варианты:
все строки в сумме по длине меньше чем требуется - выводится все что есть;
все строки в сумме превышают требуемую длину:
в последней строки более 3х символов - в последнюю строку вместо 3х последних символов добавляется многоточие;
в последней строке менее 3х символов - последняя строка удаляется, а многоточие добавляется в предпоследнюю строку.
Пример 1
Ввод
144
5
Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана
Благодаря ей он может регулировать громкость,
показывая расстояние между большим и указательным пальцами.
Для этого ему понадобилась веб-камера, знания Python и
библиотека для работы с компьютерным зрением.
Вывод
Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана
Благодаря ей он может регулировать громкость...
'''
if __name__ == "__main__":
length, line = int(input()), []
for _ in range(int(input())):
line.append(input())
for i in line:
if length > 3:
print(i[:length - 3] + "..." if len(i) >= length - 3 else (i + "..." if length == 4 else i))
length -= len(i)