1
resposta

[DUVIDA] Uso de listas no alternar_estado_restaurante()

Na função abaixo: consegui fazer funcionar ao corrigir o nome de lista, dentro do bloco for, de: restaurantes['nome'] para: restaurante['nome]. No singular.

Deu certo mas eu não entendi o por quê, visto que a lista em que estão sendo salvos é a restaurantes (a criada fora da função no começo do programa).

Alguém consegue me dar uma esclarecida?

def alternar_estado_restaurante():
    exibir_subtitulo('Alterando 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']
            mensagem = f'O restaurante {nome_restaurante} foi ativado com sucesso' if restaurante['ativo'] else f'O restaurante foi desativado com sucesso'
            print(mensagem)


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

    voltar_ao_menu_principal()
1 resposta

Oi Caio, boa noite!

Para acessar as informações e exibi-las a partir da lista global chamada “restaurantes”, você precisa iterar (ou percorrer) essa lista. Cada elemento nessa lista é um dicionário que representa um restaurante. Portanto, quando você escreve:

for restaurante in restaurantes

você está criando uma variável chamada “restaurante” que vai representar cada um desses dicionários à medida que o laço percorre a lista.

Espero que isso tenha ficado mais claro! Se tiver mais alguma dúvida, estou à disposição.