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

[Dúvida] Erro no código

Toda vez que aperto a opção 3 na aplicação aparece a seguinte mensagem:

Opção inválida

Acredito que o erro esteja nesta parte do código:

def alternar_estado_restaurante(): exibir_subtitulo("Alternando o estado do restaurante") nome_restaurante = input("Digite o nome do restaurante que deseja alterar o estado: ") restaurante_encontrado = False

for restaurante in restaurantes:
    if nome_restaurante == restaurante["nome"]:
        restaurante_encontrado = True
        restaurante["ativo"] = not restaurante["ativo"]
        mensagem = f"O restaurante {nome_restaurante} foi ativado com sucesso" if restaurante["ativo"] else f"O restaurante {nome_restaurante} foi desativado com sucesso"
        print(mensagem)
if not restaurante_encontrado:
    print("O restaurante não foi encontrado")

voltar_ao_menu_principal()

Já tentei ver outras soluções para pessoas que tiveram o mesmo problema que eu,contudo não obtive sucesso até o momento.

Exemplo prático da aplicação do código(para demonstrar): Alternando o estado do restaurante

Digite o nome do restaurante que deseja alterar o estado: Pizzariba

Resultado: Opção inválida

Digite qualquer tecla para voltar ao menu

2 respostas
solução!

Opa! Vi o tópico aberto com o mesmo problema que estou tendo. No VSCode, aparece isso para mim

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

Eu tentei postar o código aqui e estava dando erro; acho que agora vai:

import os

restaurantes = [{'nome':'Taco Italiano', 'categoria':'Mexicano', 'ativo':False}, {'nome':'Macarronada Mexicana', 'categoria':'Italiano', 'ativo':True}, {'nome': 'Feijoada Japonesa', 'categoria':'brasileiro', 'ativo':True}, {'nome':'Sushi Brazuca', 'categoria':'japonês', 'ativo':False}]

def exibir_o_nome_do_programa(): ##nome do restaurante causava erro na hora de publicar o post co dúvida

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

def exibir_opcoes():

print ('1. Cadastrar Restaurante')
print ('2. Listar Restaurantes')
print ('3. Ativar Restaurante')
print ('4. Sair\n')

def escolher_opcao(): try: opcao_escolhida = int(input ('Escolha uma opção: ')) if opcao_escolhida == 1: cadastrar_novo_restaurante() elif opcao_escolhida == 2: listar_restaurantes() elif opcao_escolhida == 3: alternar_estado_restaurante() elif opcao_escolhida == 4: finalizar_app() else: opcao_invalida() except: opcao_invalida()

def opcao_invalida(): print ('Opção Inválida\n') retorna_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: ') categoria = input(f'Digite a categoria do restaurante {nome_do_restaurante}: ') dados_do_restaurante = {'nome':nome_do_restaurante, 'categoria':categoria, ativo:False} restaurantes.append(dados_do_restaurante) print(f'O restaurante {nome_do_restaurante} foi cadastrado com sucesso!') retorna_ao_menu_principal()

def listar_restaurantes(): os.system('cls') print ('Lista de Restaurantes\n') for restaurante in restaurantes: nome_restaurante = restaurante['nome'] categoria = restaurante['categoria'] ativo = 'ativado' if restaurante['ativo'] else 'desativado' print(f'- {nome_restaurante} | {categoria} | {ativo}') retorna_ao_menu_principal()

def alternar_estado_restaurante(): exibir_subtitulo('Alterando estado do restaurante') nome_restaurante = input('Digite o nome do restaurante que deseja alterar o estado: ') restaurante_encontrado = False

for restaurante in restaurantes:
    if nome_restaurante == restaurante['nome']:
        restaurante_encontrado = True
        restaurante['ativo'] = not restaurante['ativo']
        mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'O restaurante {nome_restaurante} foi desativado com sucesso'
        print(mensagem)

if not restaurante_encontrado:
    print('O restaurante não foi encontrado.')
    
    
voltar_ao_menu_principal()

def finalizar_app(): os.system('cls') print ('Finalizando o app')

def main(): os.system('cls') exibir_o_nome_do_programa() exibir_opcoes() escolher_opcao()

if name == 'main': main()

Valeu pela ajuda.Consegui resolver o problema.