Замена заглавных букв на строчные
Мне нужно заменить буквы заданого капсом текста с заглавных на строчные, при условии, если в слове больше согласных букв, чем гласных.
Подскажите что в коде не так, и как его исправить, желательно без библиотек.
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
→ Ссылка
- разбить текст на слова
- подсчитать согласные для каждого слова
- подсчитать гласные каждого слова
- сформировать новый список слов
- сформировать строку из списка 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.
если где-то гласные/согласные забыл, то надо добавить