Как определить функцию для разделения строки на отдельные строки? - PullRequest
1 голос
/ 03 мая 2020

Скажем, строка выглядит так:

Мне нравится p ie. Ты любишь яблоки. Нам нравятся апельсины.

Как бы я определил функцию, называемую format_poem(), которая по существу брала бы любой ввод с абзацем, подобным приведенному выше, и давала бы нам каждое предложение в отдельной строке?

Я уверен, что это период после каждого предложения, но, будучи новичком, я не могу обернуть голову вокруг него. Использует ли это также метод .split()?

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Замените периоды символом для новой строки (которая почти повсеместно \n), используя .replace()

def format_poem(paragraph):
    return paragraph.replace('. ','\n')
0 голосов
/ 03 мая 2020

Вы правы: 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.

В качестве альтернативы, вы можете напечатать строки внутри функции, просто перемещая -l oop внутри функции:

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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...