Замена заглавных букв на строчные

Мне нужно заменить буквы заданого капсом текста с заглавных на строчные, при условии, если в слове больше согласных букв, чем гласных.

Подскажите что в коде не так, и как его исправить, желательно без библиотек.

text = input("Введите текст: ").upper()
glasnie = 0
soglasnie = 0
count = 0
b = text.split(" ")
for i in b:
    if i is " " or i is "," or i is "!" or i is ".":
        count = count+1
    letter = i.upper()
    if letter in 'АОЕУЫИ':
        glasnie = glasnie + 1
    else:
        soglasnie = soglasnie+1
        soglasnie2 = soglasnie - count
if glasnie < soglasnie:
    print([i.lower() for i in b])
else:
    print([i for i in b])

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

Автор решения: Zhihar
  1. разбить текст на слова
  2. подсчитать согласные для каждого слова
  3. подсчитать гласные каждого слова
  4. сформировать новый список слов
  5. сформировать строку из списка 4)

код:

text = "РАз Два Три чЕтырЕ пЯть"

words = []

for word in text.split():
    vowels = len([letter for letter in word.lower() if letter in "аоиеёэыуюя"])
    consonants = len([letter for letter in word.lower() if letter in "бвгджзйклмнпрстфхцчшщ"])

    words.append(word if vowels < consonants else word.lower())

text = ' '.join(words)

print(text)

можно даже немного извращённо:

text = ' '.join(word if len([letter for letter in word if letter.lower() in "аоиеёэыуюя"]) < len([letter for letter in word if letter.lower() in "бвгджзйклмнпрстфхцчшщ"]) else word.lower() for word in text.split())

P.S.

если где-то гласные/согласные забыл, то надо добавить

→ Ссылка