1
resposta

Dúvida

No python, posso utilizar uma condicional dentro de outra condicional ?

exemplo:

if nome_restaurante== item['nome']:

        if item['ativo'] == True
               item['ativo']=False
               print(f'O Restaurante {nome_restaurante} não está mais ativo')
            
        else:
            item['ativo']=True

else: print('Este restaurante não está no sistema')

1 resposta

Olá, Jair!

Sim, no Python é totalmente possível e comum utilizar uma condicional dentro de outra condicional. Isso é chamado de "aninhamento de condicionais". No seu exemplo, você está no caminho certo, mas há alguns detalhes que precisam ser ajustados para que o código funcione corretamente. Vou reescrever o seu código com algumas correções:

  1. Indentação: No Python, a indentação é crucial. Ela define os blocos de código que pertencem a cada condicional.
  2. Sintaxe: A sintaxe do if precisa estar correta, incluindo os dois pontos (:) no final da linha do if.

Aqui está o seu código corrigido:

if nome_restaurante == item['nome']:
    if item['ativo'] == True:
        item['ativo'] = False
        print(f'O Restaurante {nome_restaurante} não está mais ativo')
    else:
        item['ativo'] = True
else:
    print('Este restaurante não está no sistema')

Vamos entender o que está acontecendo aqui:

  1. Primeira Condicional: Verifica se nome_restaurante é igual a item['nome'].
  2. Segunda Condicional: Se a primeira condicional for verdadeira, verifica se item['ativo'] é True.
    • Se for True, define item['ativo'] como False e imprime uma mensagem.
    • Se for False, define item['ativo'] como True.
  3. Else da Primeira Condicional: Se nome_restaurante não for igual a item['nome'], imprime uma mensagem dizendo que o restaurante não está no sistema.

Aqui está um exemplo prático de como isso pode funcionar:

nome_restaurante = "Sabor Express"
item = {'nome': 'Sabor Express', 'ativo': True}

if nome_restaurante == item['nome']:
    if item['ativo'] == True:
        item['ativo'] = False
        print(f'O Restaurante {nome_restaurante} não está mais ativo')
    else:
        item['ativo'] = True
else:
    print('Este restaurante não está no sistema')

Se nome_restaurante for "Sabor Express" e item['nome'] também for "Sabor Express", o código verificará o valor de item['ativo'] e o atualizará conforme necessário.

Espero ter ajudado e bons estudos!