Значение с нуля само прибавляется на единицу
Задача была в том, чтобы на входе функции получить строку , в ней подсчитать все гласные буквы и вывести их количество. При этом если есть "y" она приравнивается к нулю . Почему в моём коде выводится единица а не ноль?
def get_count(sentence):
sum = 0;
sentence = sentence.lower()
for i in sentence:
if i == 'a' or 'e' or 'i' or 'o' or 'u':
sum += 1
elif i == 'y':
sum = sum + 0;
return sum
print(get_count("y"))
Ответы (1 шт):
Автор решения: Сергей
→ Ссылка
Неправильно писать с OR, AND и т.д. if i == 'a' or 'e' - сосгласно синтаксису первая проверка будет на i == 'a', а вторая на if 'e'. Ясно, что вторая всегда даст True, так что до elif дело не дойдет.
Правильно писать: if i == 'a' or i == 'e'
А лучше всего писать, как и написал @CrazyElf: if i in 'аеиоу'
