2
respostas

Resultado diferente na operação de inserção

Olá! Ao criar as funções insere_letras e gerador_palavras, segui os passos corretamente e tudo estava dando certo, mas o resultado final, de palavras_geradas, apresentou apenas as letras inseridas na primeira posição, do lado esquerdo. Assim, não surgiu a palavra correta, "lógica".

Abaixo estão todos os códigos que utilizei, com os respectivos resultados gerados. Peço que verifiquem se há algo errado. Obrigado.

palavra_exemplo = 'lgica'
def gerador_palavras(palavra):
  fatias = []
  for i in range(len(palavra)):
    fatias.append((lista[:i],lista[i:]))
  print(fatias)
  #palavras_geradas = insere_letras(fatias)
  #return palavras_geradas

gerador_palavras(palavra_exemplo)

[('', 'lgica'), ('l', 'gica'), ('lg', 'ica'), ('lgi', 'ca'), ('lgic', 'a')]

palavra_exemplo = 'lgica'
def gerador_palavras(palavra):
  fatias = []
  for i in range(len(palavra)+1):
    fatias.append((lista[:i],lista[i:]))
  print(fatias)
  #palavras_geradas = insere_letras(fatias)
  #return palavras_geradas

gerador_palavras(palavra_exemplo)

[('', 'lgica'), ('l', 'gica'), ('lg', 'ica'), ('lgi', 'ca'), ('lgic', 'a'), ('lgica', '')]

palavra_exemplo = "lgica"

def insere_letras(fatias):
    novas_palavras = []
    letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
    for E, D in fatias:
        for letra in letras:
            novas_palavras.append(E + letra + D)
        return novas_palavras

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

palavras_geradas = gerador_palavras(palavra_exemplo)
print(palavras_geradas)

['algica', 'blgica', 'clgica', 'dlgica', 'elgica', 'flgica', 'glgica', 'hlgica', 'ilgica', 'jlgica', 'klgica', 'llgica', 'mlgica', 'nlgica', 'olgica', 'plgica', 'qlgica', 'rlgica', 'slgica', 'tlgica', 'ulgica', 'vlgica', 'wlgica', 'xlgica', 'ylgica', 'zlgica', 'àlgica', 'álgica', 'âlgica', 'ãlgica', 'èlgica', 'élgica', 'êlgica', 'ìlgica', 'ílgica', 'îlgica', 'òlgica', 'ólgica', 'ôlgica', 'õlgica', 'ùlgica', 'úlgica', 'ûlgica', 'çlgica']

2 respostas

Descobri meu erro. Foi na indentação de "return" no código abaixo:

def insere_letras(fatias):
    novas_palavras = []
    letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
    for E, D in fatias:
        for letra in letras:
            novas_palavras.append(E + letra + D)
        return novas_palavras

Ao corrigir esse erro, cheguei ao resultado correto.

Olá Marcos, tudo bem com você?

Fico feliz em saber que você conseguiu solucionar o erro apresentado. Este retorno informando como realizou a correção é muito importante, assim sua postagem será de grande auxílio para os estudantes que estão recebendo o mesmo erro.

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software