Submódulo 1: Estruturas de decisão: condicionais if/elif/else
Operadores lógicos e combinação de condições
🎯 Operadores Lógicos: and, or e not
Depois de entender as condicionais, vamos ver como combinar várias condições para tomar decisões mais refinadas. Em Python, os operadores and, or e not permitem criar fluxos onde várias perguntas precisam ser respondidas ou onde apenas uma entre muitas precisa ser verdadeira. (1) A ideia básica é que and exige que todas as condições sejam verdadeiras para o bloco associado ser executado, enquanto or executa se pelo menos uma condição for verdadeira. (2) O operador not inverte o valor lógico de uma condição, o que é útil para situações onde queremos expressar uma exclusão. (3) Além disso, a ideia de truthiness nos ajuda a escrever verificações mais curtas; valores como 0, '', None ou listas vazias são considerados falsos, enquanto números diferentes de zero, strings não vazias e listas com elementos são verdadeiros. (1)(3) Em código, isso se traduz em estruturas como:

# Exemplo simples com operadores lógicos
idade = 21
acesso = 'Liberado' if idade >= 18 and idade <= 65 else 'Acesso Negado'
print('Status:', acesso)
Para praticar, pense no seguinte: crie um menu com opções, onde cada opção só é acessível se o usuário atender a duas condições simultâneas (por exemplo, idade entre 18 e 65 e possuir login válido). Use and para checar ambas, e not para inverter uma checagem quando necessário. (2) (3)
Curiosidade: em muitos sistemas reais, operadores lógicos ajudam a consolidar várias verificações de segurança em uma única linha de decisão, reduzindo a quantidade de código repetido.