1
resposta

Meu codigo não imprime corretamente

def jogar():
    print("**************************")
    print("Bem vindo ao jogo da forca")
    print("**************************")

    palavra_secreta = "banana"

    enforcou = False
    acertou = False

    while(not enforcou and not acertou):

        chute = input("Qual letra? ")

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

        print("Jogando...")    

    print("Fim de jogo.")    

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

O meu print print("Encontrei a letra {} na posição {}.".format(chute, index)) ele não imprimi a frase completa, somente a letra

Qual a letra?a

Qual letra? a

a

a

Jogando...

Fim de jogo.

Esta perguntando duas vezes qual é a letra tmb

1 resposta

Olá João, tudo bem com você?

Fiz um teste com o seu código, ele foi executado e apresentou a mensagem Encontrei a letra a na posição 1. conforme o programado.

Nesse primeiro momento o código irá rodar até que você finalize manualmente, por isso a repetição pedindo mais vezes uma letra.

No código postado existem dois pontos que precisam ser modificados mudando a indentação, para a lógica ficar conforme fornecida na aula.

Primeira parte

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

Deixar o index = index + 1 fora do laço if, fazendo dessa forma, a cada letra analisada será adicionado um 1 na variável index, e retornando corretamente o índex da letra escolhida.

Segunda parte

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

O teste para saber em qual módulo estamos trabalhando, deve ficar fora da função jogar() para que o teste possa acontecer assim que o arquivo for executado.

Peço que faça essas modificações e rode o código para verificar se irá funcionar da forma esperada, deixo abaixo o código já modificado.

def jogar():
    print("**************************")
    print("Bem vindo ao jogo da forca")
    print("**************************")

    palavra_secreta = "banana"

    enforcou = False
    acertou = False

    while(not enforcou and not acertou):

        chute = input("Qual letra? ")

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

        print("Jogando...")

    print("Fim de jogo.")

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

jogar()

Em caso de mais dúvidas me coloco à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!