Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 3: Estruturas de Controle

Estruturas Condicionais

Tomando decisões com if, elif e else

O que são condicionais?

Condicionais permitem que o programa tome decisões. O if funciona como uma portaria: só deixa o código passar se a condição for verdadeira. Com elif você testa alternativas e com else cobre o caso em que nada deu certo.

Em Python, o que define um bloco de código e a indentação (4 espaços). Nada de chaves como em outras linguagens.

if simples

A forma mais básica: se a condição for verdadeira, executa o bloco. Senao, pula:

idade = 18

if idade >= 18:
print("Maior de idade") # → Maior de idade
print("Pode tirar carteira")

print("Fim") # sempre executa (está fora do if)

Tudo que está indentado (4 espaços para dentro) pertence ao if. A linha print("Fim") está fora -- roda sempre.

if / else

Quando você quer tratar os dois caminhos -- verdadeiro e falso:

idade = 15

if idade >= 18:
print("Maior de idade")
else:
print("Menor de idade") # → Menor de idade

if / elif / else

Quando existem várias possibilidades, use elif (abreviação de "else if"):

nota = 8.5

if nota >= 9:
conceito = "A"
elif nota >= 7:
conceito = "B"
elif nota >= 5:
conceito = "C"
elif nota >= 3:
conceito = "D"
else:
conceito = "E"

print(f"Nota: {nota} - Conceito: {conceito}")
# → Nota: 8.5 - Conceito: B

Python avalia de cima para baixo e para no primeiro verdadeiro. 8.5 >= 9? Não. 8.5 >= 7? Sim -- entra ali e ignora o resto.

A ordem importa!

Se você colocar a condição mais genérica primeiro, ela "engole" as mais específicas:

nota = 9.5

# Errado -- ordem genérica primeiro
if nota >= 5:
print("C") # 9.5 >= 5 é True, para aqui!
elif nota >= 9:
print("A") # nunca chega aqui

# Correto -- do mais específico ao mais generico
if nota >= 9:
print("A") # → A
elif nota >= 7:
print("B")
elif nota >= 5:
print("C")

Indentacao

Em Python, indentação não é estetica -- e obrigatória. Ela define o que pertence a cada bloco:

if True:
print("Dentro do if") # 4 espaços = pertence ao if
print("Ainda dentro") # 4 espaços = pertence ao if
print("Fora do if") # 0 espaços = fora

Condicionais aninhados vs and

Você pode aninhar if dentro de if, mas na maioria dos casos and fica mais limpo:

idade = 20
tem_carteira = True

# Aninhado (funciona, mas fica fundo)
if idade >= 18:
if tem_carteira:
print("Pode dirigir")

# Simplificado com and
if idade >= 18 and tem_carteira:
print("Pode dirigir") # → Pode dirigir

Erros comuns

# Esquecer os dois-pontos
# if idade >= 18 # SyntaxError!

# Usar = em vez de ==
# if idade = 18: # SyntaxError! (= e atribuição, == e comparação)

# Bloco vazio? Use pass
if idade >= 18:
pass # TODO: implementar depois

Exemplo prático: classificador de faixa etaria

nome = input("Nome: ")
idade = int(input("Idade: "))

if idade < 0:
faixa = "Idade inválida"
elif idade <= 12:
faixa = "Crianca"
elif idade <= 17:
faixa = "Adolescente"
elif idade <= 59:
faixa = "Adulto"
else:
faixa = "Idoso"

print(f"{nome}, {idade} anos - {faixa}")
# Nome: Ana
# Idade: 22
# → Ana, 22 anos - Adulto

Cada faixa e exclusiva -- só uma delas executa. O else no final pega todos acima de 59.

Referências

Testa o que você leu

4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 4
Qual palavra-chave significa "senão se" em Python?