1
resposta

Posição da letra mudando de lugar

Porque quando coloco a variável "index" fora do WHILE a posição fica adicionando varias posições ? No meu codigo a variavel index é chamada de posicao.

def jogar():
    secret_word = "neymar"
    tentatives = 10
    enforcou = False
    acertou = False
    posicao = 0
    while acertou != True and enforcou != True :

        chute = input("Digite uma Letra : ")

        for letra in secret_word :
            if chute == letra :
                print("Encontrei a letra {} na posição {}".format(chute,posicao))
            posicao = posicao + 1


if (__name__ == "__main__") :
    jogar()
1 resposta

Olá, Gabriel. Tudo bom?

O que acontece é que a posição nunca retorna para o número 0. Você colocou uma condição de soma no laço for (linha 14), e logo depois ele retorna para o while. Supondo que você acerte a letra na posição 6 (O r de neymar), quando você retornar para o while, a variável posicao continuará com o valor 6.

Uma forma de resolver isso seria colocando o posicao dentro do while, dessa forma, sempre que a variavel letra, terminasse de percorrer a secret_word (checasse cada uma das posições), ele retornaria para o while e o valor da posicao volta a ser 0, podendo percorrer tudo novamente em uma outra tentativa.

Espero ter ajudado

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