Pular para o conteúdo
</>RoByte

Buscar cursos e aulas

Aulas do curso

Vídeo em breve

Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.

Estruturas de controle

Condicionais: if, elif e else

Como fazer o programa tomar decisões com base em condições, e os operadores de comparação e lógicos. · 15 min

Código no GitHub

Até agora, nossos programas executam de cima para baixo, sem escolhas. A partir desta aula, eles passam a decidir o que fazer com base em condições — é aqui que a “lógica” da lógica de programação entra de vez.

O básico: if / else

idade = int(input("Sua idade: "))

if idade >= 18:
    print("Você pode dirigir.")
else:
    print("Ainda não pode dirigir.")

Repare na indentação: Python usa espaços (não {}) para marcar o que pertence a cada bloco.

Atenção

Misturar tabs e espaços na indentação causa erro em Python. Configure seu editor para sempre usar espaços (4, por convenção).

Vários caminhos com elif

nota = float(input("Sua nota: "))

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

print(f"Conceito: {conceito}")

Operadores de comparação e lógicos

Comparação Significado Lógico Significado
== igual and e
!= diferente or ou
>, < maior, menor not negação
>=, <= maior/menor ou igual
idade = 20
tem_carteira = True

if idade >= 18 and tem_carteira:
    print("Pode dirigir.")

Dica

Lembrete da aula de operadores: = atribui, == compara. Dentro de um if, você sempre quer == (if idade == 18:) — usar = por engano nem roda, o Python acusa erro de sintaxe.

and e or são “preguiçosos” (short-circuit): param de avaliar assim que já sabem a resposta. Em a and b, se a já é False, Python nem olha para b — o resultado já é False de qualquer jeito.

if dentro de if (condicionais aninhadas)

Você também pode colocar um if dentro de outro, quando a segunda decisão só faz sentido depois da primeira:

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

if idade >= 18:
    tem_carteira = input("Tem carteira? (s/n): ")
    if tem_carteira == "s":
        print("Pode dirigir.")
    else:
        print("Precisa tirar a carteira primeiro.")
else:
    print("Ainda não tem idade para dirigir.")

Dica

if idade >= 18 and tem_carteira == "s": (uma condição só, com and) resolveria esse mesmo caso sem aninhar. Prefira isso quando der — é mais fácil de ler do que vários níveis de if dentro de if.

Exercícios

Exercício

1. Aquecimento. Escreva um programa que classifica um número digitado como “positivo”, “negativo” ou “zero”, usando if/elif/else.

Exercício

2. Combinando condições. Peça idade e se a pessoa tem carteira de motorista (True/False). Imprima “Pode dirigir” só se tiver 18+ e carteira; senão, imprima um motivo específico (“Idade insuficiente”, “Sem carteira” ou “Idade insuficiente e sem carteira”).

Exercício

3. Desafio. Escreva uma calculadora de conceito por faixa de nota (como no exemplo de elif acima), mas rejeitando entradas inválidas: se a nota digitada for menor que 0 ou maior que 10, imprima “Nota inválida” em vez de calcular um conceito.