W3docs

Python If...Else

Aprenda como funcionam as instruções if, elif e else em Python — com sintaxe, operadores de comparação, operadores lógicos, condições aninhadas e o operador ternário.

Instruções condicionais permitem que um programa Python escolha entre diferentes caminhos de execução dependendo se uma condição é verdadeira ou falsa. Este capítulo cobre todas as formas de condicionais em Python: if, if-else, if-elif-else, if aninhado e o atalho de uma linha — juntamente com os operadores de comparação e lógicos que fazem as condições funcionarem.

A Instrução if

A instrução if é o condicional mais simples. O bloco indentado é executado somente quando a condição é avaliada como True.

if condition:
    # code that runs when condition is True

Exemplo

python— editable, runs on the server

Python usa indentação (4 espaços por convenção) para definir o bloco — não há chaves. Se a condição for False, o bloco é simplesmente ignorado.

Operadores de Comparação

As condições são construídas a partir de expressões que comparam dois valores. Cada expressão produz um boolean em PythonTrue ou False.

OperadorSignificadoExemploResultado
==Igual a5 == 5True
!=Diferente de5 != 3True
>Maior que5 > 3True
<Menor que5 < 3False
>=Maior ou igual a5 >= 5True
<=Menor ou igual a4 <= 5True

Consulte Operadores Python para a referência completa de operadores, incluindo operadores aritméticos e de atribuição.

Operadores Lógicos

Os operadores lógicos combinam múltiplas condições em uma única expressão.

OperadorRetorna True quando…Exemplo
andAmbas as condições são Truex > 0 and x < 10
orPelo menos uma condição é Truex < 0 or x > 100
notA condição é Falsenot logged_in

Exemplo — and

python— editable, runs on the server

Exemplo — or e not

day = "Saturday"
if day == "Saturday" or day == "Sunday":
    print("It is the weekend")

logged_in = False
if not logged_in:
    print("Please log in")

A Instrução if-else

Adicione uma cláusula else para tratar o caso em que a condição é False.

if condition:
    # runs when condition is True
else:
    # runs when condition is False

Exemplo

python— editable, runs on the server

Apenas um dos dois blocos será executado em uma determinada execução.

A Instrução if-elif-else

Use elif (abreviação de "else if") para testar várias condições em sequência. Python as verifica de cima para baixo e executa o primeiro bloco que corresponder. O bloco else no final serve como alternativa para quando nenhuma das condições corresponder.

if condition1:
    # runs when condition1 is True
elif condition2:
    # runs when condition2 is True and condition1 is False
elif condition3:
    # runs when condition3 is True and the above are False
else:
    # runs when none of the above are True

Você pode ter quantas cláusulas elif precisar, mas apenas um if e no máximo um else.

Exemplo — classificação de notas

python— editable, runs on the server

Por que a ordem importa: assim que Python encontra uma condição True, ele para de verificar. Se você escrevesse score >= 60 primeiro, uma pontuação de 95 imprimiria "Grade: C" porque 95 também é >= 60. Sempre coloque a condição mais específica (mais restritiva) primeiro.

Instruções if Aninhadas

Uma instrução if pode aparecer dentro do bloco de outra instrução if. Isso é chamado de aninhamento e é útil quando você precisa aplicar um teste secundário somente após um teste primário passar.

score = 85
if score >= 60:
    if score >= 90:
        print("Grade: A")
    elif score >= 80:
        print("Grade: B")
    else:
        print("Grade: C")
else:
    print("Grade: F")
# Output: Grade: B

Atenção: aninhamento profundo torna o código difícil de ler. Prefira cadeias de elif para comparações simples e considere extrair lógica aninhada para uma função quando o aninhamento ultrapassar dois níveis.

Veracidade e Valores Falsy

Python trata muitos valores como implicitamente True ou False sem usar um operador de comparação. Os valores considerados False em um contexto boolean são:

  • None
  • False
  • 0 (inteiro zero), 0.0 (float zero)
  • "" (string vazia), [] (lista vazia), {} (dict vazio), () (tupla vazia), set() (conjunto vazio)

Tudo o mais é considerado True. Isso permite escrever guardas concisas:

name = "Alice"
if name:
    print("Name is set")      # prints because "Alice" is truthy

items = []
if not items:
    print("The list is empty") # prints because [] is falsy

value = None
if value is None:
    print("No value provided") # use 'is None' for explicit None checks

Use is None / is not None (não == None) ao testar especificamente por None — é a convenção de estilo Python e evita correspondências acidentais.

if Abreviado (Expressão Ternária)

A expressão condicional de uma linha em Python atribui um de dois valores com base em uma condição:

value = result_if_true if condition else result_if_false

Exemplo

age = 20
status = "adult" if age >= 18 else "minor"
print(status)
# Output: adult

Isso é equivalente a:

if age >= 18:
    status = "adult"
else:
    status = "minor"

Use a forma ternária para atribuições simples de valores. Evite aninhá-la — a if c1 else b if c2 else c rapidamente se torna ilegível.

A Instrução pass

Python requer pelo menos uma instrução dentro de cada bloco. Se você quiser definir um ramo if que intencionalmente não faz nada (um placeholder durante o desenvolvimento), use pass:

x = 10
if x > 5:
    pass  # TODO: handle this case later
else:
    print("x is 5 or less")

pass é uma operação nula — ela diz ao Python que "este bloco está intencionalmente vazio."

O Operador Walrus := (Python 3.8+)

O operador walrus atribui um valor a uma variável e o testa na mesma expressão. É mais útil quando você precisa do valor testado dentro do bloco if:

numbers = [1, 2, 3, 4, 5]
if (n := len(numbers)) > 3:
    print(f"List has {n} items, which is more than 3")
# Output: List has 5 items, which is more than 3

Sem :=, você precisaria de uma linha de atribuição separada. Os parênteses em torno de n := len(numbers) são necessários aqui para evitar ambiguidade.

Erros Comuns

Usar = em vez de ==

# Wrong — this is assignment, not comparison, and causes a SyntaxError in conditions
# if x = 5:

# Correct
if x == 5:
    print("x is five")

Esquecer os dois-pontos

Cada linha if, elif e else deve terminar com :. Um dois-pontos ausente produz um SyntaxError.

Indentação inconsistente

Todas as instruções no mesmo bloco devem usar exatamente a mesma indentação. Misturar tabulações e espaços causa um IndentationError. Use 4 espaços, que é o padrão PEP 8.

O Que Usar em Cada Situação

CenárioMelhor escolha
Uma condição, ação únicaif
Dois caminhos mutuamente exclusivosif-else
Três ou mais caminhosif-elif-else
Teste secundário dentro de um ramoif aninhado
Atribuição simples de valorTernário x if c else y
Verificações de igualdade com múltiplos valores (Python 3.10+)instrução match

Prática

Prática
What are the correct ways to write an if-else statement in Python?
What are the correct ways to write an if-else statement in Python?

Depois de entender os condicionais, o próximo passo natural é repetir código com loops while em Python e loops for em Python.

Was this page helpful?