@Yeah_Science

Как найти гласные и согласные буквы в словах в файле на Python?

Есть некий file_1 и file_2. В file_1 я вручную ввожу какой-нибудь текст с пробелами и знаками препинания. Нужно переписать текст из file_1 в file_2 удалив из него слова, в которых количество согласных букв меньше, чем количество гласных.
Как мне максимально грамотно определить что в слове больше гласных, чем согласных букв?
  • Вопрос задан
  • 13682 просмотра
Решения вопроса 2
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
import re

def vowelsMoreConsonats(word):
	count_vowels = len(re.findall(r'[ауоыиэяюёе]', word, re.IGNORECASE))
	count_consonants = len(re.findall(r'[бвгджзйклмнпрстфхцчшщ]', word, re.IGNORECASE))

	if count_vowels > count_consonants:
		return True

	return False

with open('file_1.txt') as file:
	words = file.read().split()

for word in words:
	print(f'{word} {vowelsMoreConsonats(word)}')

Output
Есть False
некий False
file_1 False
и True
file_2. False
В False
file_1 False
я True
вручную False
ввожу False
какой-нибудь False
текст False
с False
пробелами False
и True
знаками False
препинания. False
Нужно False
переписать False
текст False
из False
file_1 False
в False
file_2 False
удалив False
из False
него False
слова, False
в False
которых False
количество False
согласных False
букв False
меньше, False
чем False
количество False
гласных. False
Как False
мне False
максимально False
грамотно False
определить False
что False
в False
слове False
больше False
гласных, False
чем False
согласных False
букв? False
Ответ написан
@VuX
Можно по разному написать:

#1
word = "mytestword"
cword = len(word)
vowels = "aeuioy"

i = 1
cc = 0
for w in word:
	for c in vowels:
		if c in w:
			cc += 1
if cc > cword-cc:
	print("гласных больше")
print("cc =", cc)

#2
word = "mytestword"
cword = len(word)
vowels = "aeuioy"

cc = 0
for c in vowels:
	cc = word.count(c) + cc
if cc > cword-cc:
	print("гласных больше")
print("cc =", cc)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
aRegius
@aRegius
Python Enthusiast
в слове больше гласных, чем согласных букв

sum(2 for letter in word if letter in vowels) > len(word)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы