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

olá tudo bem? então me ajude por favor nao sei mais onde estou errado no codigo quando contra o j pra ver o codigo e coloco a opção 2 pra lista os restaurande aparece opção invalida! já revisei o codigo ja mudei mas não muda só aparece opção invalida!

import os

restaurante = ['Pizza', 'Sushi',]

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 finalizar_app():
     os.system('cls')
     # os.system('clear') no mac
     print('finalizando o app\n')

def opcao_invalida():
    print('opção invalida!\n')
    input('Digite uma tecla para volta 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' )
    restaurante.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('cls')
    print('Listando os restaurantes\n')

    for restaurante in restaurante:
        print('f.{restaurante}')

    input('\n 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()
2 respostas
solução!

Olá! Como vai?

Vou apontar aqui alguns ajustes que devem ser feitos para o código funcionar corretamente!

No trecho a seguir:

for restaurante in restaurante:
        print('f.{restaurante}')

Você está usando o mesmo nome para duas variáveis, o que causa confusão na execução do código. O correto seria:

  • for restaurante in restaurantes:

Outro ajuste é na função print, o f está dentro das aspas simples. A forma certa seria:

  • print(f'{restaurante}')

E por fim, ajustando a declaração da variável restaurante no início. Dessa maneira:

  • restaurantes = ['Pizza', 'Sushi']

Também realizei alguns ajustes de espaçamento, o código corrigido fica assim:

import os

restaurantes = ['Pizza', 'Sushi']

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 finalizar_app():
     os.system('cls')
     # os.system('clear') no Mac

     print('Finalizando o app\n')

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('cls')
    print('Listando os restaurantes:\n')

    for restaurante in restaurantes:
        print(f'{restaurante}')

    input('\nDigite 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()

Resultado:

Interface baseada em texto para um programa de gerenciamento de restaurantes mostrando opções para registrar, listar e ativar restaurantes, apresentando o "Sabor Express".

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

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

deu certo Daniel obrigado pela ajuda :)