如何定义将字符串拆分为单独行的函数?

How do I define a function to split a string into separate lines?

比如说,字符串看起来像:

I like pie. You like apples. We like oranges.

我将如何定义一个名为 format_poem() 的函数,该函数本质上会接受任何带有上述段落的输入,并在单独的一行中为我们提供每个句子?

我确定它位于每个句子之后的句点,但作为菜鸟,我无法理解它。这个也是用.split()的方法吗?

感谢您的帮助。

使用 .replace()

将句点替换为新行的字符(几乎普遍 \n
def format_poem(paragraph):
    return paragraph.replace('. ','\n')

你是对的:split 会做你需要的。

str = "I like pie. You like apples. We like oranges."

def format_poem(inStr):
     t = inStr.split(". ")
     return t

for el in format_poem(str):
    print(el)

输出:

I like pie
You like apples
We like oranges.

或者,您可以打印函数内的行,只需在函数内移动 for 循环:

I like pie. You like apples. We like oranges.

def format_poem(inStr):
     t = inStr.split(". ")
     for el in t:
         print(el)

为了保留句子末尾的句点,就像在原始字符串中一样,您需要使用replace()方法,搜索". "并替换为".\n"。请注意此方法如何不修改原始字符串:

#Perform replacement
str2 = str1.replace(". ", '.\n')
#Print the original string
print(str1)
#Print new string, result of the replacement
print(str2)

新的输出是:

#The original string
I like pie. You like apples. We like oranges.
#The newly assigned string    
I like pie.
You like apples.
We like oranges.