<p>下面是一个简单的函数,它在第五句的末尾添加了一个换行符</p>
<pre><code>def new_line(sentence: str):
# characters that mark the end of a sentence
end_of_sentence_markers = ['.', '!', '?', '...']
# after n sentences insert new_line
n = 5
# keeps track
count = 0
# final string as list for efficiency
final_str = []
# split at space
sentence_split = sentence.split(' ')
# traverse the sentence split
for word in sentence_split:
# if end of sentence is present then increase count
if word[-1] in end_of_sentence_markers:
count += 1
# if count is equal to n then add newline otherwise add space
if count == n:
final_str.append(word + '\n')
count = 0
else:
final_str.append(word + ' ')
# return the string version of the list
return ''.join(final_str)
</code></pre>
<p>以下是修改后的版本:</p>
<pre><code>def new_line_better(sentence: str, n: int):
# final string as list for efficiency
final_str = []
# split at period and remove extra spaces
sentence_split = list( map( lambda x : x.strip(), sentence.split('.') ) )
# pop off last space
sentence_split.pop()
# keeps track
count = 0
# traverse the sentences
for sentence in sentence_split:
count += 1
if count == n:
count = 0
final_str.append(sentence+'.\n')
else:
final_str.append(sentence+'. ')
# return the string version of the list
return ''.join(final_str)
</code></pre>