Python – Imprima cada oración en una nueva línea

Por el tema, estoy tratando de imprimir cada oración en una cadena en una nueva línea. Con el código y la salida actuales mostrados a continuación, ¿cuál es la syntax para devolver “Salida correcta” que se muestra a continuación?

Código

sentence = 'I am sorry Dave. I cannot let you do that.' def format_sentence(sentence): sentenceSplit = sentence.split(".") for s in sentenceSplit: print s + "." 

Salida

 I am sorry Dave. I cannot let you do that. . None 

Salida correcta

 I am sorry Dave. I cannot let you do that. 

Puedes hacerlo :

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

Hay algunos problemas con su implementación. Primero, como señala Jarvis en su respuesta, si su delimitador es el primer o último carácter de su cadena o si dos delimitadores están uno al lado del otro, None se insertará en su matriz. Para solucionar esto, necesita filtrar los valores de None . Además, en lugar de utilizar el operador + , use el formato en su lugar.

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

Puede dividir la cadena por “.” En lugar de “.”, Luego imprimir cada línea con un adicional “.” Hasta el último, que tendrá un “.” ya.

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

Tratar:

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