根据主题,我试图在新行上打印字符串中的每个句子。使用下面显示的当前代码和输出,返回"正确输出"的语法是什么?如下所示?
代码
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.
答案 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'))