1
resposta

Ao executar o código aparece a seguinte mensagem :

PS C:\Users\Computador\Desktop\Sabor Express> python app.py
Sabor Express
Digite uma tecla para voltar ao menu principal
Traceback (most recent call last):
File "C:\Users\Computador\Desktop\Sabor Express\app.py", line 49, in
main()
^^^^
NameError: name 'main' is not defined. Did you mean: 'min'?
PS C:\Users\Computador\Desktop\Sabor Express>

Código listado abaixo

import os

restaurantes = ['Pizza', 'Sushi']

Trecho de código suprimido

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

def exibir_opcoes():
print('1. Cadastrar restaurante')
print('2. Listar restaurantes')
print('3. Ativar restaurante')
print('4. Sair\n')

def finalizando_app ():
os.system('cls')
print('finalizando app')

def opcao_invalida():
print('opção_invalida!\n')
input('Digite uma tecla para voltar ao menu principal')
main()

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!')
input('\nDigite uma tecla para voltar ao menu principal')
main()

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

input('Digite uma tecla para voltar ao menu principal')
main()

def escolhe_opcao():
try:
opcao_escolhida = int(input('Escolha uma Opção: '))
# opcao_escolhida = int(opcao_escolhida)

    if opcao_escolhida == 1:
        cadastrar_novo_restaurante()
    elif opcao_escolhida == 2:
         listar_restaurantes()
    elif opcao_escolhida  == 3:
        print('Ativar restaurante')
    elif opcao_escolhida == 4:
        finalizar_app()
    else:
        opcao_invalida()      
except :
      opcao_invalida()

def main():
os.system('cls')
exibir_nome_do_programa()
exibir_opcoes()
escolhe_opcao()

if name == 'main':
main()

obs : consegui resolver : )

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Amanda! Como vai?

Parece que você já conseguiu resolver o problema, mas vou explicar o que estava acontecendo para ajudar no seu entendimento. A mensagem de erro "NameError: name 'main' is not defined" ocorre quando o Python tenta chamar uma função que ainda não foi definida no código. No seu caso, a função main() estava sendo chamada antes de ser definida no código, o que gerou o erro.

Para evitar esse tipo de erro, é importante garantir que todas as funções sejam definidas antes de serem chamadas. No seu código, a solução foi definir a função main() antes de qualquer chamada a ela.

Além disso, é sempre uma boa prática revisar a ordem das funções e chamadas no seu script para garantir que tudo esteja no lugar certo. No seu caso, a função main() deveria estar definida antes de ser chamada em qualquer outro ponto do código.

Espero ter ajudado e bons estudos!

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