Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro de sintaxe

Na hora de executar o código no python, dá esse erro, alguem sabe me dizer o porque? Eu copiei o código igual o daaula

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

palavra_secreta = "banana"
letras_acertadas = ["_", "_", "_", "_", "_", "_"]

enforcou = False
acertou = False

print(letras_acertadas)

while(not enforcou and not acertou):

    chute = input("Qual letra? ")
    chute = chute.strip()

    index = 0
    for letra in palavra_secreta:
        if(chute.upper() == letra.upper()):
            letras_acertadas[index] = letra
        index = index + 1

    print(letras_acertadas)

print("Fim do jogo")

if(name == "main"): jogar()

SyntaxError: invalid syntax

3 respostas

Olá Lohan, tudo bem?

Então tem esse lance chatinho de indentação que ele leva bem a sério!!

No seu caso o seu programa não conhece a váriavel letras_acertadas pq ela não existe no corpo da função game. E também precisei ajustar a indentação do seu bloco while e consequentemente o que está dentro dele.

Fiz umas alterações aqui e ficou dessa forma:

def game():
    print("*********************************")
    print("***Bem vindo ao jogo da Forca!***")
    print("*********************************")

    palavra_secreta = "banana"
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False

    print(letras_acertadas)
    while(not enforcou and not acertou):
        chute = input("Qual Letra?")
        chute = chute.strip()
        index= 0

        for letra in palavra_secreta:
          if (chute.upper() == letra.upper()):
            letras_acertadas[index] = letra
            index = index + 1

    print("Fim do jogo")


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

Espero ter te ajudado! Um abraço e bons estudos! :-)

solução!

É obrigatório colocar espaço ao atribuir uma variável? Exemplo:

letras = 0

Olá Lohan, tudo bem? Espero que sim!

Pode estar ocorrendo um erro de indentação, eu testei o código aqui e está funcionando normalmente. Mas precisa estar adequado os espaços ao entrar em uma função, uma condicional ou um loop.

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

    palavra_secreta = "banana"
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False

    print(letras_acertadas)

    while(not enforcou and not acertou):

        chute = input("Qual letra? ")
        chute = chute.strip()

        index = 0
        for letra in palavra_secreta:
            if(chute.upper() == letra.upper()):
                letras_acertadas[index] = letra
            index = index + 1

        print(letras_acertadas)

    print("Fim do jogo")

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

Veja que é necessário 4 espaços ou um tab em relação ao bloco em que o código se encontra para o Python entender que o código faz parte de um bloco de condicional, loop ou função.

Bons estudos!