Значение с нуля само прибавляется на единицу

Задача была в том, чтобы на входе функции получить строку , в ней подсчитать все гласные буквы и вывести их количество. При этом если есть "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 'аеиоу'

→ Ссылка