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

时间:2017-02-10 20:11:09

标签: python loops newline

根据主题,我试图在新行上打印字符串中的每个句子。使用下面显示的当前代码和输出,返回"正确输出"的语法是什么?如下所示?

代码

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.   

4 个答案:

答案 0 :(得分:3)

你可以这样做:

def format_sentence(sentence) :
    sentenceSplit = filter(None, sentence.split("."))
    for s in sentenceSplit :
        print s.strip() + "."

答案 1 :(得分:0)

您的实施存在一些问题。首先,正如Jarvis在他的回答中指出的那样,如果您的分隔符是字符串中的第一个或最后一个字符,或者如果两个分隔符字符彼此相邻,则None将插入到您的数组中。要解决此问题,您需要过滤掉None值。另外,请使用格式代替使用+运算符。

def format_sentence(sentences):
    sentences_split = filter(None, sentences.split('.'))
    for s in sentences_split:
        print '{0}.'.format(s.strip())

答案 2 :(得分:0)

您可以按"拆分字符串。 "而不是"。",然后用额外的"打印每一行。"直到最后一个,它将有一个"。"已经

def format_sentence(sentence):
    sentenceSplit = sentence.split(". ")
    for s in sentenceSplit[:-1]:
        print s + "."
    print sentenceSplit[-1]

答案 3 :(得分:0)

尝试:

def format_sentence(sentence):
    print(sentence.replace('. ', '.\n'))