project_python.3.1/lesson.16.py

59 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

''' ****** Задание 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)