Contando sílabas em uma lista de strings Python sem usar RE
Nov 15 2020
Tenho que contar o número de sílabas em um arquivo de texto. Meu problema é que não sei como iterar cada caractere de cada string. Minha ideia era verificar se uma letra é vogal, e se a letra seguinte não for vogal, aumentar a contagem em 1. Mas não posso aumentar "letra". Também tentei usar o método "range", mas também tenho problemas com isso. O que posso tentar? Obrigado. PS: Só posso usar métodos internos do Python.
txt = ['palavras de contagem', 'casa', 'planta', 'alfa', 'sílabas']
Este é o meu código até agora.
def syllables(text_file):
count = 0
vowels = ['a','e','i','o','u','y']
with open(text_file, 'r') as f:
txt = f.readlines()
txt = [line.replace(' ','') for line in txt]
txt = [line.replace(',','') for line in txt]
txt = [y.lower() for y in txt]
for word in txt:
for letter in word:
if letter is in vowel and [letter + 1] is not in vowel:
count += 1
Respostas
cknoll Nov 14 2020 at 23:32
Você pode tentar isto:
lines = ["You should count me too"]
count = 0
vowels = "aeiouy"
for line in lines:
for word in line.lower().split(" "):
for i in range(len(word)):
if word[i] in vowels and (i == 0 or word[i-1] not in vowels):
count +=1
print(count) # -> 5
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas