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

Programa parou de funcionar depois de usar o __name__ == "__main__"

Meu programa funcionava até a etapa de inserir o name == "main". Primeiramente, houve um erro da minha parte, só coloquei um "=", mas mesmo depois de corrigir, o PyCharm retorna

 if(__name__ = "__main__"):
                           ^
SyntaxError: invalid syntax

Isso acontece nos 3 programas (Jogos, Forca e Advinhação) e nem copiando o gabarito, consegui resolver.

import forca
import adivinhacao

def escolhe_jogo():
    print("*********************************")
    print("*******Escolha o seu jogo!*******")
    print("*********************************")

    print("(1) Forca (2) Adivinhação")

    jogo = int(input("Qual jogo? "))

    if(jogo == 1):
        print("Jogando forca")
        forca.jogar()
    elif(jogo == 2):
        print("Jogando adivinhação")
        adivinhacao.jogar()

if(__name__ == "__main__"):
    escolhe_jogo()
5 respostas

Oi Daniel, como vai?

Aparentemente o PyCharm não identificou a mudança que você fez no código ao colocar dois iguais, pois ele ainda retorna o mesmo erro de sintaxe de quando o código possui apenas um sinal de igual.

Verifique por favor se você salvou as alterações e tente executar novamente.

Caso o erro persista, compartilhe o link do drive ou github com todos os seus arquivos para que possamos efetuar os testes =)

Fico no aguardo.

Sim, eu já havia testado isso. De fato, eu cheguei a reinstalar o PyCharm por achar se tratar de algum bug, que não estava reconhecendo o comando. Seguem os arquivos https://drive.google.com/file/d/1HqbM47ew2eN33kXjHoMGSjZuf0MbTKHX/view?usp=sharing https://drive.google.com/file/d/1_Z4ckqWMFfmlNOtJGcvJWbxm1oefWs2K/view?usp=sharing https://drive.google.com/file/d/1D_6nUMEKQlxJ4rvTaIoiA_o9E_0rh8xh/view?usp=sharing

Daniel, testei o seu projeto no PyCharm e o único erro que ocorreu foi quando teclo o 1 para jogar o jogo da forca, pois há um erro de sintaxe. Está definido false com F minúsculo, porém, o correto é com F maiúsculo:

enforcou = False
 acertou = False

Outro detalhe é que o if em Python não precisa necessariamente de parênteses, mas em teoria isso não interfere em erros de sintaxe.

Faça um teste por gentileza:

  • Crie um novo projeto. File -> New Project
  • Crie um novo arquivo python e cole o seguinte código:
def saudacao():
    print("Olá Daniel!")

if __name__ == "__main__":
    saudacao()

E para executar, clique sobre o arquivo e aperte Run.

Observe se ainda é apresentado algum erro de sintaxe.

Caso o erro continue e para que não fique travado no curso por conta disso, uma solução alternativa seria executar o seu projeto por meio do prompt de comando:

  • Aperte a tecla windows + R e digite: cmd

image

  • Deverá abrir a seguinte tela:

image

  • Vá até o seu projeto no PyCharm, clique na pasta do projeto com o botão esquerdo e clique em Show in Explorer:

image

  • Deverá abrir uma janela na pasta do projeto. Dê um duplo clique na pasta e copie o endereço da mesma:

image

  • Volte a tela do cmd e digite: cd endereco_da_pasta_que_copiou

  • Para executar o programa digite: python jogos.py:

image

Qualquer dúvida me avise, estou por aqui.

Eu executei no Prompt e tanto o Advinhação quanto o Jogos funcionaram normalmente.

No Pycharm, o Saudacao funcionou, assim como o Adivinhação, mas o Jogos não.

Corrigi a condição da Força, obrigado!

Eu realmente gostaria de fazer o programa rodar também no PyCharm para ter tudo no mesmo painel. O que mais poderia estar errado?

solução!

Daniel, como você já até desinstalou o programa e o mesmo erro acontece, é incerto dizer o que está ocorrendo. O que pode tentar é criar um novo projeto e os arquivos tudo do zero dentro do Pycharm e tentar executar novamente, mas caso o erro persista, é bem incerto apontar uma solução para isso.

Outra coisa que pode tentar é copiar ou reescrever o código de jogos no arquivo de adivinhacao.py que funcionou no Pycharm, tentar executar e verificar se o mesmo erro será apontado.

Sinto muito não te ajudar tanto em relação a isso :/