Я провел некоторые исследования топи c и не нашел элегантного решения. У этой проблемы есть родственники, решения которых включают textwrap и несколько ответов , но ничего такого, что не решает вашу главную проблему ...
... это то, что вы хотите считать символы в зачеркнутой строке, но применять переводы строк к оригиналу. Решением этой проблемы может стать несколько замученная цепочка для поддержания обоих показателей. Вы должны были бы считать и буквы и пробелы; когда letter
достигает кратного K
, вы передаете полученный кусок вверх по линии, от вашей предыдущей конечной точки через строку [letter_count + space_count].
Честно говоря, я не понимаю Не думаю, что это будет стоить усилий для программирования, отладки, сопровождения и (особенно) документа для будущих программистов. Просто напишите l oop, чтобы перебрать вашу строку. Вот мучительно длинная версия:
line = "Now is the time for all good parties to come to the aid of man." + \
" It was the best of times, it was the worst of times."
K = 20
slugs = []
left = 0
count = 0
for idx, char in enumerate(line):
if char != ' ':
count += 1
if count == K:
count = 0
slugs.append(line[left: idx+1])
left = idx+1
slugs.append(line[left:])
print ('\n'.join(slugs))
Вывод:
Now is the time for all go
od parties to come to the
aid of man. It was the bes
t of times, it was the wor
st of times.