簡體   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