Python-在新行上打印每个句子
根据主题,我试着在一行新行上用字符串打印每个句子。对于下面显示的当前代码和输出,返回下面显示的“正确输出”的语法是什么 代码Python-在新行上打印每个句子,python,loops,newline,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
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.
正确输出
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() + "."
您可以这样做:
def format_sentence(sentence) :
sentenceSplit = filter(None, sentence.split("."))
for s in sentenceSplit :
print s.strip() + "."
您的实现存在一些问题。首先,正如贾维斯在回答中指出的那样,如果您的分隔符是字符串中的第一个或最后一个字符,或者如果两个分隔符字符紧挨在一起,那么将在数组中插入
None
。要解决此问题,您需要过滤掉None
值。另外,不要使用+
操作符,而是使用格式化
def format_sentence(sentences):
sentences_split = filter(None, sentences.split('.'))
for s in sentences_split:
print '{0}.'.format(s.strip())
您的实现存在一些问题。首先,正如贾维斯在回答中指出的那样,如果您的分隔符是字符串中的第一个或最后一个字符,或者如果两个分隔符字符紧挨在一起,那么将在数组中插入
None
。要解决此问题,您需要过滤掉None
值。另外,不要使用+
操作符,而是使用格式化
def format_sentence(sentences):
sentences_split = filter(None, sentences.split('.'))
for s in sentences_split:
print '{0}.'.format(s.strip())
您可以将字符串按“.”而不是“.”拆分,然后在每行打印一个额外的“.”,直到最后一行已经有一个“.”
您可以将字符串按“.”而不是“.”拆分,然后在每行打印一个额外的“.”,直到最后一行已经有一个“.” 尝试: 尝试:
提示:句子之间的间隔超过个句点。它已经被回答了。。检查提示:句子之间的间隔超过句点。它已经被回答了。。查看此代码是否可以回答问题,提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。