1
resposta

Nossa ... que curso confuso

Sinceramente, tá tão confusa a explicação, num vai e vem de funçoes e exemplos, sem um roteiro mais claro, que tá confundindo até o básico de python.

Não tá fácil absorver o conteúdo e transformar em algo útil... talvez seja uma boa sugestão criar um roteiro para facilitar o passo-a-passo no entendimento

1 resposta

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!