繁体   English   中英

Python-在新行上打印每个句子

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM