Я хочу убедиться, что я печатаю не более 80 длинных строк, но у меня есть строка s
, которая может быть как короче, так и длиннее.Поэтому я хочу разбить его на строки без разбиения любых слов.
Пример длинной строки:
s = "This is a long string that is holding more than 80 characters and thus should be split into several lines. That is if everything is working properly and nicely and all that. No mishaps no typos. No bugs. But I want the code too look good too. That's the problem!"
Я могу придумать способы сделать это, например:
words = s.split(" ")
line = ""
for w in words:
if len(line) + len(w) <= 80:
line += "%s " % w
else:
print line
line ="%s " % w
print line
Точно так же я мог бы использовать s.find(" ")
итеративно в цикле while:
sub_str_left = 0
pos = 0
next_pos = s.find(" ", pos)
while next_pos > -1:
if next_pos - sub_str_left > 80:
print s[sub_str_left:pos-sub_str_left]
sub_str_left = pos + 1
pos = next_pos
next_pos = s.find(" ", pos)
print s[sub_str_left:]
Ничто из этого не очень элегантно, поэтому мой вопрос в том, есть ли более холодный питонический способ сделатьэтот?(Может быть с регулярным выражением или около того.)