Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Ativando restaurantes

Na hora de ativar e desativar restaurantes sempre aparece o print opção invalida, mesmo se o estado foi alterado ou se o restaurante não foi encontrado

   exibir_subtitulo('Alternando estado do restaurante')
   nome_restaurante = input('Digite o nome do restaurante que deseja alternar o estado: ')
   restaurante_encontrado = False

   for restaurante in restaurantes:
      if nome_restaurante == restaurante['nome']:
         restaurante_encontrado = True
         restaurante['ativo'] = not restaurante['ativo'] #o not inverte o valor na chave
         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 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()
1 resposta
solução!

Oii Victor, tudo bem?

O problema tá na linha onde você verifica se o restaurante foi encontrado. Você está tentando chamar restaurante_encontrado como uma função.

A linha:

if not restaurante_encontrado():

Deveria ser:

if not restaurante_encontrado:

O código corrigido:

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()

Você pode conferir o código aqui.

Espero ter ajudado.

Um abraço e bons estudos.