[英]Python - Print Each Sentence On New Line
对于每个主题,我都尝试将字符串中的每个句子打印在新行上。 使用下面显示的当前代码和输出,返回下面显示的“正确输出”的语法是什么?
码
sentence = 'I am sorry Dave. I cannot let you do that.'
def format_sentence(sentence):
sentenceSplit = sentence.split(".")
for s in sentenceSplit:
print s + "."
输出量
I am sorry Dave.
I cannot let you do that.
.
None
正确的输出
I am sorry Dave.
I cannot let you do that.
你可以这样做 :
def format_sentence(sentence) :
sentenceSplit = filter(None, sentence.split("."))
for s in sentenceSplit :
print s.strip() + "."
您的实现存在一些问题。 首先,正如Jarvis在他的答案中指出的那样,如果分隔符是字符串中的第一个或最后一个字符,或者两个分隔符彼此相邻,则None
将插入到数组中。 要解决此问题,您需要过滤掉None
值。 另外,不要使用+
运算符,而要使用格式。
def format_sentence(sentences):
sentences_split = filter(None, sentences.split('.'))
for s in sentences_split:
print '{0}.'.format(s.strip())
您可以使用“。”而不是“。”来分割字符串,然后在每行上附加一个“。”。 直到最后一个将带有“。” 已经。
def format_sentence(sentence):
sentenceSplit = sentence.split(". ")
for s in sentenceSplit[:-1]:
print s + "."
print sentenceSplit[-1]
尝试:
def format_sentence(sentence):
print(sentence.replace('. ', '.\n'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.