✅ Atualizado para Python 3.13 (Maio 2026) If/elif/else,
match/case, comparações encadeadas e valores falsy para controle de fluxo e decisões.
Salve, salve Pythonista!
Nesse post vamos falar sobre estruturas para se controlar o fluxo de execução de programas Python: if, elif, else, condições e muito mais!
Posso garantir que vai ser difícil você abrir um código em Python e não encontrar um if ou um if-else!
São estruturas realmente muito utilizadas no dia a dia do programador Python!
Saber como controlar o fluxo de execução do código que desenvolvemos é algo muito importante, e as estruturas condicionais if, if-else e if-elif-else são muito úteis!
Sem mais delongas, bora pro conteúdo!!!
Vá Direto ao Assunto…
- Introdução
- Estrutura Condicional
if - Estrutura Condicional
if/else - Estrutura Condicional
if-elif-else - Estrutura Condicional Ternária (
ifem uma linha) ifAninhado (nested if)- Comparações Encadeadas
- Truthiness: o que o
ifconsidera “verdadeiro” match/case: Structural Pattern Matching (Python 3.10+)- Estruturas de Repetição com Estruturas Condicionais
- List Comprehensions com
if
Introdução
O que são estruturas condicionais (if/elif/else) em Python? São comandos que executam um bloco de código apenas se uma condição for verdadeira. O
iftesta a condição principal, oeliftesta condições alternativas e oelsecobre o caso em que nenhuma das anteriores foi atendida - é assim que o programa toma decisões e controla seu fluxo.
É muito comum na programação, precisarmos que determinado bloco de código seja executado apenas se determinada condição for satisfeita.
Para esses casos, Python disponibiliza formas de se controlar o fluxo de execução de programas: são as chamadas Estruturas Condicionais IF/ELIF/ELSE.
Um conceito muito importante para se trabalhar com condições em Python é entender o conceito dos Operadores: is, not, %=, ==, in entre outros.
Falando nisso, nós temos um post completo sobre Operadores que você pode conferir clicando aqui!
Agora, vamos começar com uma das estruturas condicionais mais utilizadas no Python: o if!
Estrutura Condicional if
O if executa um bloco de código somente quando sua condição é verdadeira; se a condição for falsa, o bloco é ignorado.
Agora que já está craque com os Operadores do Python, vamos aprender sobre nossa primeira estrutura condicional.
Antes de escrever condições, vale ter à mão os principais operadores de comparação e operadores lógicos que usamos dentro de um if:
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
== |
Igual a | 10 == 10 |
True |
!= |
Diferente de | 10 != 5 |
True |
> |
Maior que | 10 > 5 |
True |
< |
Menor que | 10 < 5 |
False |
>= |
Maior ou igual a | 5 >= 5 |
True |
<= |
Menor ou igual a | 4 <= 3 |
False |
and |
E (ambas verdadeiras) | True and False |
False |
or |
Ou (ao menos uma) | True or False |
True |
not |
Negação (inverte) | not True |
False |
Sua sintaxe é bem simples, bastando utilizarmos if seguido pela condicao seguido por dois pontos:
Veja o exemplo a seguir:
1
2
3
4
valor = 10
if valor > 5:
print('O valor é maior que 5.')
Neste caso, a condição está testando se o valor presente na variável valor é maior que 5.
Caso isso aconteça, a linha de código abaixo será executada (nesse exemplo, a chamada à função print()).
Como 10 é maior que 5 o bloco de código resulta em:
1
O valor é maior que 5.
Caso você precise que um bloco de código seja sempre executado, basta adicionar True à condição:
1
2
if True:
print("Este bloco sempre irá ser executado.")
Resultado do código acima:
1
Este bloco sempre irá ser executado.
Estrutura Condicional if/else
O else define um bloco que roda quando a condição do if é falsa, garantindo um caminho alternativo para o seu código.
Vimos na seção acima que o if executa um bloco de código se sua condição for atendida, mas e se ela não for atendida e você deseja realizar outra ação? ![]()
Bom, basta utilizarmos a estrutura condicional else!
Com ela, toda vez que uma condição não for atendida, o Python executará o bloco de código definido abaixo da cláusula else.
Vamos esclarecer no exemplo abaixo:
1
2
3
4
5
6
idade = 20
if idade < 17:
print('A idade é MENOR que 17')
else:
print('A idade é MAIOR que 17')
Neste caso, a condição testa se o valor da variável idade é menor que 17.
Porém, como 17 é menor que 20, o bloco else é então executado, resultando em:
1
A idade é MAIOR que 17
Está curtindo esse conteúdo? ![]()
Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?
Estrutura Condicional if-elif-else
O elif (abreviação de else if) permite testar várias condições em sequência: o Python avalia cada elif na ordem e executa o primeiro cujo teste for verdadeiro.
O elif é utilizado quando mais de uma condição if precisa ser testada. Exemplo:
1
2
3
4
5
6
7
8
9
10
linguagem = "Python"
if linguagem == "C++":
print('C++ é uma linguagem de programação compilada.')
elif linguagem == "Python":
print("Python é uma linguagem de programação de alto nível")
elif linguagem == "Java":
print("Java é uma linguagem de programação amplamente utilizada no mercado")
else:
print('Não é nenhuma das duas opções')
Neste exemplo, estamos verificando o valor da variável linguagem em diversos testes.
Note que a saída abaixo é exatamente o resultado da execução do elif, já que o valor da variável linguagem é igual à “Python”:
1
Python é uma linguagem de programação de alto nível
Estrutura Condicional Ternária (if em uma linha)
O operador ternário condensa um if/else em uma única linha no formato valor_se_verdadeiro if condição else valor_se_falso, ideal para escolher entre dois valores rapidamente.
Python provê uma forma concisa de se testar valores com apenas uma linha de código
São os chamados if-ternários, ou condições ternárias, ou operadores ternários: os nomes são diversos!
Veja um exemplo:
1
2
3
4
5
velocidade = 75
resultado = 'Multado' if velocidade > 60 else 'Dentro do limite'
print(resultado)
Nesse caso, está sendo verificado se o valor da variável velocidade é maior que 60 e:
- Caso a condição seja verdadeira a variável
resultadoreceberá o valorMultado; - Caso a condição seja falsa, a variável
resultadoreceberá o valorDentro do limite.
Bem, pelo resultado abaixo parece que alguém foi multado ![]()
1
Multado
if Aninhado (nested if)
Um if aninhado é simplesmente um if dentro de outro if, usado quando uma decisão só faz sentido depois que outra já foi tomada.
Imagine que, para alguém poder dirigir, primeiro ela precisa ser maior de idade e, só então, verificamos se possui carteira:
1
2
3
4
5
6
7
8
9
10
idade = 25
possui_carteira = True
if idade >= 18:
if possui_carteira:
print('Pode dirigir')
else:
print('Precisa tirar a carteira')
else:
print('Menor de idade')
Resultado do código acima:
1
Pode dirigir
Repare que o else interno pertence ao if possui_carteira, enquanto o else externo pertence ao if idade >= 18. A indentação é o que define a qual if cada else está ligado. ![]()
Comparações Encadeadas
O Python permite encadear comparações de forma matemática e legível, como if 0 < x < 10:, em vez de escrever if x > 0 and x < 10:.
Veja na prática:
1
2
3
4
x = 7
if 0 < x < 10:
print('x está entre 0 e 10')
Resultado do código acima:
1
x está entre 0 e 10
Essa sintaxe é idiomática em Python (parece até notação de matemática!) e funciona com qualquer operador de comparação, como if 0 <= nota <= 100:.
Truthiness: o que o if considera “verdadeiro”
O if não exige um True ou False explícito: ele avalia a “verdade” (truthiness) do objeto que recebe. Valores considerados falsy (avaliados como False) fazem o bloco não executar.
Os valores falsy em Python são:
| Valor falsy | O que representa |
|---|---|
0 / 0.0
|
Número zero |
'' |
String vazia |
[] |
Lista vazia |
{} |
Dicionário vazio |
() |
Tupla vazia |
set() |
Conjunto vazio |
None |
Ausência de valor |
False |
O booleano falso |
Qualquer outro valor é considerado truthy (avaliado como True). Por isso, em vez de escrever if len(lista) > 0:, o jeito idiomático é deixar o próprio if avaliar a lista:
1
2
3
4
5
6
carrinho = []
if carrinho:
print('Tem itens no carrinho')
else:
print('O carrinho está vazio')
Resultado do código acima:
1
O carrinho está vazio
Como a lista está vazia ([] é falsy), o bloco else é executado. Esse padrão deixa o código mais limpo e legível. ![]()
match/case: Structural Pattern Matching (Python 3.10+)
A partir do Python 3.10 (PEP 634), surgiu o match/case, uma alternativa ao if/elif/else para comparar uma mesma variável contra vários valores ou padrões - semelhante ao switch de outras linguagens, porém mais poderoso.
Veja como tratar diferentes códigos de status HTTP:
1
2
3
4
5
6
7
8
9
10
11
status = 404
match status:
case 200:
print('OK')
case 301 | 302:
print('Redirecionamento')
case 404:
print('Não encontrado')
case _:
print('Outro status')
Resultado do código acima:
1
Não encontrado
Alguns detalhes importantes:
- O
case _:funciona como um “default”, capturando qualquer valor que não casou com os anteriores; - O
|(barra vertical) permite testar vários valores no mesmocase, como emcase 301 | 302:.
Quando usar match/case vs if/elif/else? Use match/case quando você compara uma única variável contra valores ou padrões fixos - fica mais legível que uma pilha de elif. Já para condições com intervalos (if 0 < x < 10:), lógica composta (and/or) ou testes de variáveis diferentes, o if/elif/else continua sendo a melhor escolha.
O
match/casesó funciona no Python 3.10 ou superior. Em versões anteriores, ele causa umSyntaxError.
Estruturas de Repetição com Estruturas Condicionais
Podemos juntar as Estruturas de Repetição com as Estruturas Condicionais, que aliás trabalham muito bem juntas.
Se você quer aprender mais sobre estruturas de repetição, loops, for, while e muito mais acesse nosso post feito especialmente para este tema: Loops e estruturas de repetição no Python.
Veja um exemplo dessas estruturas trabalhando em conjunto:
1
2
3
4
5
for numero in range(1, 5):
if numero % 2 == 0:
print(f'O número {numero} é par')
else:
print(f'O número {numero} é ímpar')
Resultado do código acima:
1
2
3
4
O número 1 é ímpar
O número 2 é par
O número 3 é ímpar
O número 4 é par
Nota: O operador % retorna o resto da divisão. ![]()
Criei o Ebookr.ai, uma plataforma que usa IA para gerar ebooks profissionais sobre qualquer tema - com capa gerada por IA, infográficos automáticos e exportação em PDF. Confere!
List Comprehensions com if
Outro lugar onde podemos utilizar as Estruturas Condicionais são nas chamadas List Comprehensions do Python.
Suponha que te peçam para: escrever um código que retorne apenas os números pares de uma sequência de 0 a 10.
Veja como isto poderia ser feito em apenas 1 linha de código!
1
list_comp = [numero for numero in range(0, 11) if numero % 2 == 0]
Resultado do código acima:
1
[0, 2, 4, 6, 8, 10]
Esse é o poder das Estruturas de Repetição em conjunto com as Estruturas Condicionais e ainda List Comprehensions!
Python é demais! ![]()
Caso você ainda não conheça as List Comprehensions, vou te recomendar um conteúdo que vale ouro para que possa aprender sobre o assunto: List Comprehensions no Python!
Conclusão
Nesse post vimos um dos pilares da programação em Python: as Estruturas Condicionais.
Vimos todos os seus sabores e onde podemos utilizá-las para controlarmos o fluxo de execução dos nossos programas em Python!
Se ficou com alguma dúvida, fique à vontade para deixar um comentário no box aqui embaixo! Será um prazer te responder! ![]()
Perguntas frequentes
O que é if/elif/else em Python?
if/elif/else são as estruturas condicionais do Python: o if executa um bloco quando sua condição é verdadeira, o elif testa condições adicionais e o else roda quando nenhuma condição anterior foi atendida. Servem para controlar o fluxo do programa.
Qual a diferença entre == e = em Python?
São coisas diferentes: = é o operador de atribuição, que guarda um valor numa variável (x = 10), enquanto == é o operador de comparação, que testa se dois valores são iguais e retorna True ou False (x == 10). Em condições, use sempre ==.
O que é o operador ternário em Python?
O operador ternário é um if/else em uma única linha, no formato valor_se_verdadeiro if condição else valor_se_falso. Por exemplo: status = 'par' if n % 2 == 0 else 'ímpar'. É útil para escolher entre dois valores de forma concisa.
Quando usar match/case em vez de if/elif/else?
Use match/case (Python 3.10+) quando comparar uma mesma variável contra vários valores ou padrões fixos - fica mais legível que muitos elif. Para condições com intervalos, ranges ou lógica composta (and/or), prefira if/elif/else.
O que é um valor falsy em Python?
Um valor falsy é aquele que o if trata como False. São eles: 0, 0.0, '', [], {}, (), set(), None e False. Por isso if lista: já testa se a lista tem itens, sem precisar de len(lista) > 0.
"Porque o Senhor dá a sabedoria, e da sua boca vem a inteligência e o entendimento" Pv 2:6