1
resposta

Meu código esta trazendo uma posição inválida

Por qual motivo o retorno do código é diferente nestas 2 possibilidades com palavra chave sendo banana, a unica diferença é o espaço no " index = index + 1"

1° Resultado do primeiro Código

Qual Letra ?a Encontrei a letra a na posição 0 Encontrei a letra a na posição 1 Encontrei a letra a na posição 2

2°Resultado do segundo código

Qual Letra ?a Encontrei a letra a na posição 1 Encontrei a letra a na posição 3 Encontrei a letra a na posição 5

//1°código
        for letra in palavra_secreta:
            if (chute == letra):
                print("Encontrei a letra {} na posição {}".format(letra, index))
                index = index + 1

 //2°código
    for letra in palavra_secreta:
            if (chute == letra):
                print("Encontrei a letra {} na posição {}".format(letra, index))
            index = index + 1
1 resposta

Olá Felipe, Tudo bem?

O Python é uma linguagem que se utiliza da identação para resolver os comandos. Todo comando identado é executado dentro do "pai".

O for letra in palavra_secreta vai te retornar cada letra da palavra. Então, na primeira vez, letra = b, na segunda = a, terceira = n... A ideia da variável index é te ajudar a mostrar a posição que aquela letra está.

Logo, se você informou a, temos esta letra na posição 1, 3 e 5 (índices 0, 2 e 4).

No primeiro código, você está apenas incrementando o index quando é a letra encontrada (o index está identado para dentro do if). Ou seja: quando você passa pela primeira letra (b), ela não é igual ao chute (a). Então o index não é incrementado (o que já gera o problema). Quando você passa pelo primeiro "a", ele confirma que tem e atualiza o index. Mas aí o problema já está feito.

No segundo código, o index é atualizado dentro do for e não dentro do if, o que resolve o problema.

Espero ter ajudado. Se ajudou, não se esqueça de marcar a resposta como solução! =)

Cussa

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