3
respostas

Erro no Console

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 posicao {}".format(letra, index))
            index = index + 1

        print("Jogando...")

    print("Fim do jogo")


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

Quando coloco pra rodar apresenta o erro abaixo:


Qual letra?b
Traceback (most recent call last):
  File "C:/Users/wduarte/PycharmProjects/jogos/forca.py", line 26, in <module>
    jogar()
  File "C:/Users/wduarte/PycharmProjects/jogos/forca.py", line 12, in jogar
    chute = input("Qual letra?")
  File "<string>", line 1, in <module>
NameError: name 'b' is not defined

Process finished with exit code 1
3 respostas

Oi Wanderson, tudo bem?

Qual a versão do python que está utilizando? Para verificar abra o terminal e digite python -V

Testando seu código com o python na versão 3.7 ele executou corretamente.

Já na versão 2.7 obtive o mesmo erro que o seu.

Isso porquê na versão 2 do python deve-se utilizar a função raw_input() no lugar da input() normal do python 3.

Se realmente estiver com a versão 2 sugiro mudar para a 3 durante os cursos. Existem alguns controladores de versão como o pyenv que podem te auxiliar nisso.

Segue artigo sobre a diferença entre input() e raw_input(): https://www.alura.com.br/artigos/a-diferenca-das-funcoes-input-e-raw-input-no-python

Oi Erick, tudo bem e vc?

Correto, estou utilizando a versão 2.7 Vou instalar a versão 3.7 mas também vou analisar a função raw_input()

Muito obrigado pela força Abç

Tudo bem também!

Isso, é sempre bom aprender nas diferentes versões