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

Duvida lógica referente o código.

""" def alternar_estado_do_restaurante(): exibir_subtitulo('Alterando situação do restaurante') nome_do_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'\nO restaurante {nome_do_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'\nO restaurante {nome_do_restaurante} foi desativado com sucesso'
        print(mensagem)
if not restaurante_encontrado:
    print('\nO restaurante não foi encontrado')
voltar_ao_menu_principal() 

""" Não consegui de fato entender a lógica de porque preciso colocar o not nesta linha "if not restaurante_encontrado:" pois logo em cima eu declaro restaurante_encontrado como False. OBS: Meu chute é que por mais que o item da lista não tenha entrado no primeiro if do loop for a variavel restaurante_encontrado continua sendo alterada, não sei se estou certo por isso fiz a pergunta para que eu consiga entender cada etapa de lógica. Agradeço desde já!

1 resposta
solução!

Oi Luca,

Sua dúvida é muito pertinente e comum 👍.

Vamos esclarecer a lógica por trás do if not restaurante_encontrado:.

Inicialmente, você define restaurante_encontrado como False. O objetivo do seu código é percorrer a lista de restaurantes e, se encontrar um restaurante com o nome fornecido, alterar seu estado (ativo/inativo).

O loop for itera sobre cada restaurante na lista. Se o nome do restaurante atual corresponder ao nome digitado pelo usuário, o código dentro do if é executado e restaurante_encontrado é alterado para True, indicando que o restaurante foi encontrado.

Se o loop for terminar e restaurante_encontrado ainda for False, significa que nenhum restaurante com o nome fornecido foi encontrado na lista.

É nesse momento que o if not restaurante_encontrado: entra em ação.

O not inverte o valor booleano de restaurante_encontrado. Ou seja, se restaurante_encontrado é False, not restaurante_encontrado se torna True, e o código dentro desse if é executado, exibindo a mensagem "O restaurante não foi encontrado".

Em resumo, o not é usado para verificar se a variável restaurante_encontrado continua False após o loop, indicando que o restaurante não foi encontrado. 🤔

Para saber mais: Entendendo o uso de booleanos em Python.

Continue praticando e explorando o mundo da programação! 💪