Olá Guaraci! Como está?
De fato essa aula pode gerar alguma confusão devido a grande quantidade de funções que são criadas e a forma como elas são explicadas. Vou tentar explicar de forma breve o funcionamento das funções insere_letras
e gerador_palavras
.
A princípio, nessa aula, nossa intenção é criar um corretor que corrija apenas palavras que possuem alguma letra faltando. Como por exemplo: lgica, sguinte, etc. Para criar um corretor que faça isso, precisamos passar por basicamente 3 etapas:
- Fatiar a palavra em lados esquerdo e direito;
- Inserir uma nova letra entre essas partes fatiadas da palavra;
- Gerar novas palavras.
A primeira parte da função gerador_palavras
, é responsável por fazer o fatiamento da palavra de diferentes formas. Por meio de um laço for
, percorremos a palavra e fatiamos ela em duas partes de diferentes maneiras. A medida que vamos fazendo isso, vamos salvando essas duas partes da palavra em uma lista de tuplas:
def gerador_palavras(palavra):
fatias = []
for i in range(len(palavra) + 1):
fatias.append((palavra[:i], palavra[i:]))
# continuação da função
Então, se visualizarmos as fatias, da palavra "lgica" por exemplo, vamos ter a seguinte lista de tuplas:
[('', 'lgica'), ('l', 'gica'), ('lg', 'ica'), ('lgi', 'ca'), ('lgic', 'a'), ('lgica', '')]
Agora, precisamos inserir letras entre cada uma dessas fatias para testarmos as possibilidades de palavras até encontrarmos a certa. Para fazer essa inserção de letras, vamos criar a função insere_letras
. Nessa função, vamos percorrer cada uma das tuplas existentes na lista fatias
e vamos inserir entre cada uma das partes da palavra uma letra diferente (vogal, consoante, vogal com acento) e vamos salvar o resultado disso em uma lista novas_palavras
:
novas_palavras = []
letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
for E, D in fatias:
for letra in letras:
novas_palavras.append(E + letra + D)
return novas_palavras
Com essa função criada, podemos agora chamá-la dentro da função gerador_palavra
, para que possamos passar para a insere_letras
, as fatias que estamos dividindo dentro da função gerador_palavra
:
def gerador_palavras(palavra):
fatias = []
for i in range(len(palavra) + 1):
fatias.append((palavra[:i], palavra[i:]))
palavras_geradas = insere_letras(fatias)
return palavras_geradas
E pronto, assim, estamos criando diferentes palavras de acordo com a palavra que for passada para a função gerador_palavra
.
De todo modo, agradecemos muito pelo seu feedback. A opinião dos alunos sobre o conteúdo é sempre a mais importante. Vou levar seu feedback e sugestões para o time responsável por essa parte.
Qualquer dúvida estou à disposição :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!