В строке найти и вывести все слова, начинающиеся на букву N и слова оканчивающиеся на букву P. Буквы N и P вводяться пользователем

Некоторое время назад столкнулся с вышеуказаной проблемой. Я новичёк в Python, поэтому пока не могу прийти к какому-то решению. Буду очень благодарен за любую подсказку или помощь )

Попробовал вот так, но не работает

r = input("Введите текст на английском:").split(" ")
n = input("Введите N:")
p = input("Введите P:")

l = []
z = []

for i in r:
    if r.startswith(n):
    l.append(i)

for i in r:
    if r.endswith(p)
    z.append(i)

print(f"Слова которые начинаются на заданую букву :{l}")
print(f"Слова которые начинаются на заданую букву :{z}") 

Ответы (1 шт):

Автор решения: Jack_oS

Т.е. ваш немного измененный код:

r = input("Введите текст на английском:").split(" ")
n = input("Введите N:")
p = input("Введите P:")

l = []
z = []

for i in r:
    if i.startswith(n):
        l.append(i)

for i in r:
    if i.endswith(p):
        z.append(i)

print(f"Слова, которые начинаются на заданую букву: {l}")
print(f"Слова, которые заканчиваются на заданую букву: {z}") 

при

>>> Введите текст на английском:>? 
qwer tyui oper asdf ghjf klui gzxcv
>>> Введите N:>? 
g
>>> Введите P:>? 
r

выведет:

Слова, которые начинаются на заданую букву: ['ghjf', 'gzxcv']
Слова, которые заканчиваются на заданую букву: ['qwer', 'oper']

PS проверить слова можно в одном цикле:

for i in r:
    if i.startswith(n):
        l.append(i)
    if i.endswith(p):
        z.append(i)
→ Ссылка