Проблема с условиями 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 шт):
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):