2
respostas

Duvida restaurante_encontrado

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

Nao entendi o papel do "restaurante_encontrado" na execução desse trecho. Poderiam me explicar melhor por favor?

2 respostas

Certamente! O papel da variável restaurante_encontrado é rastrear se um restaurante com o nome fornecido pelo usuário foi encontrado na lista de restaurantes. Vou explicar como funciona o código:

  1. Inicialização da variável restaurante_encontrado: No início do código, restaurante_encontrado é definido como False. Isso significa que inicialmente, assumimos que o restaurante não foi encontrado na lista.

    restaurante_encontrado = False
    
  2. Loop através dos restaurantes: O código utiliza um loop for para percorrer a lista de restaurantes. Dentro desse loop, ele compara o nome fornecido pelo usuário com o nome de cada restaurante na lista.

    for restaurante in restaurantes:
        if nome_do_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)
    
    • Se o nome do restaurante fornecido pelo usuário coincide com o nome de algum restaurante na lista, restaurante_encontrado é definido como True. Além disso, o estado (ativo ou não) do restaurante é alternado, e uma mensagem é impressa informando se o restaurante foi ativado ou desativado com sucesso.
  3. Verificação após o loop: Após o loop, o código verifica se algum restaurante foi encontrado usando a condição if not restaurante_encontrado. Se nenhum restaurante foi encontrado, imprime uma mensagem indicando que o restaurante não foi encontrado.

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

Dessa forma, a variável restaurante_encontrado ajuda a controlar se o restaurante buscado pelo usuário está presente na lista, permitindo a exibição apropriada de mensagens de sucesso ou falha.

Entendi... Porém, sem explicação eu pensaria que nao funcionaria assim pelo "if not" nao estar dentro do "for".

Meu pensamento: Como o "if not" está fora do "for", ele irá inverter o valor da variavel "restaurante_encontrado = False" e não do "True" que está dentro do "for".

Desculpe se ficou meio confuso minha explicação