【问题标题】:How do I define a function to split a string into separate lines?如何定义一个函数将字符串拆分为单独的行?
【发布时间】:2020-05-03 06:32:17
【问题描述】:

说,字符串看起来像:

我喜欢馅饼。你喜欢苹果。我们喜欢橘子。

我将如何定义一个名为format_poem() 的函数,它基本上可以接受任何带有上述段落的输入,并将每个句子放在单独的行中?

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

感谢您的帮助。

【问题讨论】:

    标签: python function methods split sentence


    【解决方案1】:

    使用.replace() 将句点替换为新行的字符(几乎普遍为\n

    def format_poem(paragraph):
        return paragraph.replace('. ','\n')
    

    【讨论】:

    • 所以我这样做了: def format_poem(poem): returnpoem.replace(".","\n") 然后我调用该函数并通过长段落以及它返回的内容只是所有句点都被字符串“\n”替换哈哈编辑:我如何格式化此回复中的代码哈哈。对不起,这个网站的菜鸟
    • 您如何查看输出? \n 是换行符,因此如果打印或写入文件,通常会导致输出分布在多行中。
    【解决方案2】:

    你是对的: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.
    

    【讨论】:

    • 如果我希望函数为我完成所有这些工作,包括 for 循环,该怎么办?
    • @codingnoob 你想要函数内部的打印?好吧..将 for 移到里面..
    • 嗨!抱歉,刚回过神来。所以我利用了你的第二个函数,里面有 for 循环。句子实际上在单独的行中看起来更好!但是,如果我要提出挑剔的目的,我将如何保留句末的句号,因为它会去掉它?另外,我注意到在输出的第一句之后,其他三个是缩进的。有什么办法可以防止其他三个句子缩进?感谢您的指导!
    • 嘿,再次忽略我之前回复中关于缩进奇怪的部分。只是因为我忘了在split方法中包含句号后的空格~
    • @CodingNoob 我又添加了一个部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多