If - Else Aninhado
Parte da seção Fundamentals do Journey de Python da Coddy — lição 23 de 77.
Instruções If-Else aninhadas permitem que você verifique múltiplas condições ao colocar uma instrução if-else dentro de outra. Você pode aninhar um bloco if dentro de um bloco else — este é um padrão comum e válido em Python.
Crie uma instrução if-else básica:
age = 18
title = "None"
if age >= 18:
title = "Adult"
else:
title = "Minor"Agora vamos adicionar uma condição aninhada dentro do bloco else:
age = 18
title = "None"
allowed_to_drink = False
if age >= 18:
title = "Adult"
else:
title = "Minor"
if age >= 13:
title = "Teenager"
else:
title = "Child"Você também pode aninhar uma condição dentro do bloco if:
age = 25
title = "None"
allowed_to_drink = False
if age >= 18:
title = "Adult"
if age >= 21:
allowed_to_drink = True
else:
allowed_to_drink = False
else:
title = "Minor"Em ambos os exemplos, o if-else interno só é executado quando a condição externa que o contém é atendida. Colocar uma instrução if dentro de um bloco else (ou dentro de um bloco if) é completamente válido — é exatamente isso que o torna "aninhado".
Desafio
InicianteEscreva um programa que determine a elegibilidade para um filme com base na idade e na orientação dos pais.
Código fornecido (não modifique):
- Uma variável
ageé definida e recebe um valor a partir da entrada - Uma variável
with_parenté definida e recebe um valor booleano — ela éTruese a entrada for"true", ouFalsese a entrada for"false" - Uma variável
messageé definida com o valor"None"
Sua tarefa:
Use instruções if-else aninhadas para definir a variável message como uma das seguintes strings:
- Se a idade for 18 anos ou mais, defina
messagecomo"You can watch any movie". - Se a idade for menor que 18:
- Se
with_parentforTrue, definamessagecomo"You can watch PG-13 movies". - Se
with_parentforFalse, definamessagecomo"You can only watch G-rated movies".
- Se
Importante: Como with_parent já é um booleano, verifique-o diretamente (ex: if with_parent:) — não o compare com uma string como "true" ou "True".
Importante: As strings devem corresponder exatamente — incluindo capitalização e pontuação. Por exemplo, use "PG-13 movies" ('m' minúsculo), não "PG-13 Movies".
Folha de consulta
Instruções if-elif-else aninhadas permitem a tomada de decisão hierárquica:
if condition1:
if condition2:
# Código para quando ambas as condições são verdadeiras
else:
# Código para quando condition1 é verdadeira, mas condition2 é falsa
else:
# Código para quando condition1 é falsa
Exemplo de condições aninhadas:
if age > 18:
if has_license:
print("You can drive")
else:
print("Get a license first")
else:
print("Too young to drive")O aninhamento pode ser infinito, permitindo árvores de decisão complexas:
if condition1:
if condition2:
if condition3:
# Mais condições aninhadas...
Experimente você mesmo
# Obter a idade como um número inteiro
age = int(input())
# Obter orientação parental como um booleano (True/False)
with_parent = input() == "true"
# Declarar uma variável chamada message com "None"
message = "None"
# Escreva seu código if-else aninhado aqui
# Não altere abaixo desta linha
print(message)Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada10FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz2Variáveis
NúmerosStringBooleanoConvenções de NomenclaturaVariáveis VaziasRecapitulação - Inicializar Variáveis8Laços de Repetição
Loop ForLoop WhileBreakContinueRecapitulação - FatorialA Função RangeLoops AninhadosRecapitulação - Entrada Dinâmica11Fundamentos de Listas
Declarando uma ListaAcessando Elementos da ListaModificando ListasMétodos de ListaRecapitulação - Lista de ProdutosRecapitulação - Lista InvertidaTupla14Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6Entrada e Saída Básica
SaídaSaída com VariáveisEntradaConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso9Funções
Declarar uma FunçãoArgumentosRetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão12Iterando sobre Sequências
Iterando sobre ElementosA Função EnumerateIterando sobre Strings Parte 1Iterando sobre Strings Parte 2