Проблема с условиями python

Дана строка "Python else loop". Проверьте содержит ли она букву 'l'. Если да и следующей за ней идет одна из букв 'a', 'o', 'e', - напечатайте эти буквы. В противном случае выведите сообщения о том, что искомые комбинации не найдены. Почему в случае с if 'a' in s[i+1] or 'o' in s[i+1] or 'e' in s[i+1]: программа работает корректно, с другим if 'a' or 'o' or 'e' in s[i+1]:работает не корректно.

s = "Python else loop"

for i in range(0, len(s)):
    if 'l' in s[i]:
        print('Есть')
        if 'a' in  s[i+1] or 'o' in s[i+1] or 'e' in s[i+1]:
        #if 'a' or 'o' or 'e' in s[i+1]:
            print('Есть комбо', s[i] + s[i+1])
            break
        else:
            print('Комбо не найдены')
            break
else:
    print('l нет')

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

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

in здесь при таком использовании не нужны, достаточно сравнения ==

А насчёт ифа - это же питон, а не русский язык. Выполняется

 if 'a' or 'o'

это не ноль, True, дальше можно не проверять. ls должно вывестись, как я понимаю.

Правильно будет

if 'a' == s[i+1] or 'o' == s[i+1] or 'e' == s[i+1]:

или с использованием in

 if  s[i+1] in ['a', 'o', 's']:

Кроме того, диапазон цикла, чтобы не вылезти за пределы строки

for i in range(len(s) - 1):
→ Ссылка