Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

parou de funcionar após eu digitar o voltar_ao_menu_principal

Insira aqui a descrição dessa imagem para ajudar na acessibilidade de funcionar

10 respostas

Olá Ana! Tudo bem?

Parece que o problema pode estar relacionado à função voltar_ao_menu_principal(). Vamos verificar alguns pontos que podem estar causando o erro:

  1. Verifique a Indentação: Certifique-se de que a função voltar_ao_menu_principal() está corretamente indentada e definida no seu código. Além disso, veja se ela está sendo chamada corretamente dentro das outras funções.

  2. Função main(): A função voltar_ao_menu_principal() chama main(), então é importante garantir que a função main() esteja definida e funcionando corretamente. Se main() não estiver definida ou tiver algum erro, isso pode causar problemas.

  3. Erro de Sintaxe: Na imagem, parece que há um erro de sintaxe na linha onde voltar_ao_menu_principal() é definida. Verifique se há algum erro de digitação ou sintaxe, como parênteses ou aspas faltando.

Se essas dicas não resolverem, pode ser útil revisar o código completo para identificar onde o problema está ocorrendo. Então peço que compartilhe ele por inteiro, recomendo que use o GitHub.

Espero ter ajudado e bons estudos!

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

Boa tarde, Ana! Peço perdão pela demora em retornar.

Analisando o projeto no repositório que você compartilhou, notei alguns problemas e irei listar eles logo abaixo de forma separa para você conseguir visualizar bem.

  1. Na linha 47 do seu arquivo "app.py" a estrutura de repetição que você fez para mostrar as informações de cada restaurante tem um problema de endentação na função print, ele deve está dentro do for. Segue o exemplo:

    for restaurante in restaurantes:
        print(f'.{restaurante}')
    
  2. Por fim, na linha 67 do seu projeto há um probleminha bobo, onde você esqueceu de adicionar a letra "n" em "invalida". Ao corrigir isso todo o seu código deve rodar sem mais problemas.

Espero ter ajudado e fico à disposição para mais problemas ou dúvidas!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá, Ana!

Agora o erro está na função main, e como se trata de um NameError, provavelmente você definiu a função main com outro nome. Para solucionar isso, peço que vá para a linha 70 ou 72 do seu projeto e veja como está o nome da última função definida, caso esteja diferente de main, mude para a mesma.

Caso tenha mais problemas, estou à disposição!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Bom dia, Ana!

Peço que atualize o seu repositório remoto em relação ao seu projeto local, pois, imagino que haja algum trecho de código que esteja diferente, causando assim o problema Tendo em vista que o erro era para estar relacionado a função main, mas a mesma está correta.

Fico no agurado!

solução!

Boa tarde, Ana!

O problema na edentação do trecho de condição que havia comentado na minha postagem anterior e na chamada da função voltar_ao_menu_principal() que está logo abaixo dessa condição, ambas estavam fora da função cadastrar_novo_restaurante() o que acabou causando todo esse erro.

Segue o código completo e corrigido:

import os

restaurantes = ['Pizza', 'Sushi']

def exibir_nome_do_programa():
    print('''
░██████╗░█████╗░██████╗░░█████╗░██████╗░  ███████╗██╗░░██╗██████╗░██████╗░███████╗░██████╗░██████╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔══██╗  ██╔════╝╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
╚█████╗░███████║██████╦╝██║░░██║██████╔╝  █████╗░░░╚███╔╝░██████╔╝██████╔╝█████╗░░╚█████╗░╚█████╗░
░╚═══██╗██╔══██║██╔══██╗██║░░██║██╔══██╗  ██╔══╝░░░██╔██╗░██╔═══╝░██╔══██╗██╔══╝░░░╚═══██╗░╚═══██╗
██████╔╝██║░░██║██████╦╝╚█████╔╝██║░░██║  ███████╗██╔╝╚██╗██║░░░░░██║░░██║███████╗██████╔╝██████╔╝
╚═════╝░╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚══════╝╚═╝░░╚═╝╚═╝░░░░░╚═╝░░╚═╝╚══════╝╚═════╝░╚═════╝░
      ''')

def exibir_opçoes():
    print('1. Cadastrar resturante')
    print('2. Listar resturantes')
    print('3. Ativar resturante')
    print('4. Sair\n')

def finalizar_app():
    os.system('cls')
    print('Encerrando o app\n')

def voltar_ao_menu_principal():
     input('\nDigite uma tecla para voltar ao menu principal ')
     main()

def opçao_invalida():
    print('Opção inválida\n')
    voltar_ao_menu_principal()

def cadastrar_novo_restaurante():
    os.system('cls')
    print('Cadastro de novos restaurantes\n')
    nome_do_restaurante = input('Digite o nome do restaurante que deseja cadastrar: ')
    restaurantes.append(nome_do_restaurante)
    print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!\n')

    voltar_ao_menu_principal()

def listar_restaurantes():
    os.system('cls')
    print('Listando todos os restaurantes\n')
            
    for restaurante in restaurantes:
        print(f'.{restaurante}')

    voltar_ao_menu_principal()

def escolher_opçao():
    try:

        opçao_escolhida = int(input('Escolha uma opção:'))

        if opçao_escolhida == 1:
            cadastrar_novo_restaurante()
        elif opçao_escolhida == 2:
            listar_restaurantes()
        elif opçao_escolhida == 3:
            print('Ativar restaurante')
        elif opçao_escolhida == 4:
            finalizar_app()
        else:
            opçao_invalida()
     
    except:
        opçao_invalida()

def main():
    os.system('cls')
    exibir_nome_do_programa()
    exibir_opçoes()
    escolher_opçao()

if __name__ == '__main__':
    main()
    

Fico a disposição!