def elimina_vogais(texto): """ Elimina as vogais do texto.""" vogais ='aeiouAEIOU' novo_texto = '' for car in texto: if car not in vogais: novo_texto = novo_texto + car return novo_textoComo sempre em programação existem alternativas de solução. Algumas requerem que se conheça bem a linguagem que estamos a usar, no nosso caso Python. Isso permite-nos chegar a uma solução extremamente simples:
def elimina_vogais(texto): """ Retira as vogais numa cadeia, substituindo-as por espaços em branco.""" vogais = 'aeiou' for car in vogais: texto = texto.replace(ch,' ') return texto
Como se pode ver agora usamos as vogais para conduzir o processo de eliminação. Isto evita ter que andar num longo percurso do texto, caracter a caracter, e fazer um processo de selecção com um if como na primeira solução. Note-se também que enquanto no primeiro caso usamos uma variável auxiliar (novo_texto), no segundo caso não. Esta solução é fácil de tornar mais geral. Por exemplo, se quisermos um programa que elimine um subconjunto de caracteres quaisquer basta alterar uma instrução e uns pequenos ajustes, ou, melhor ainda, passar esses caracteres através de um parâmetro formal.
def elimina_caracteres(texto, caracteres): """ Retira os caracteres numa cadeia, substituindo-as por espaços em branco.""" for car in caracteres: texto = texto.replace(ch,' ') return textoDentro desta ideia de generalizar podemos tentar com a primeira solução. Exemplo.
def elimina_caracteres_d(texto, funcao): """ Elimina os caracteres que satisfazem uma condição dada pela funcao. A funcao aplica-se a um caractere dando um resultado booleano: é um filtro! """ novo_texto = '' for car in texto: if not funcao(car): novo_texto = novo_texto + car return novo_texto def f(car): return (44 <= ord(car) <= 75) def vogue(car): return car in 'aeiouAEIOU'Agora usamos uma função genérica que se aplica a caracteres dando um resultado booleano. No exemplo apresentamos duas funções possíveis. Como vê a sua imaginação é o limite.
Sem comentários:
Enviar um comentário