Pular para o conteúdo
Editor

If-else em Python: condições, elif, if aninhado e ternário

Iniciante25 min6 exercícios70 XP

Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução

0/6 exercícios

Todos os dias você toma centenas de decisões. Se está chovendo, você pega um guarda-chuva. Se o semáforo está vermelho, você para. Se a bateria do celular está abaixo de 20%, você procura um carregador. Todas essas são decisões condicionais: você verifica alguma coisa e age de acordo com o resultado.

Os programas tomam decisões do mesmo jeito. Sem condições, o código rodaria exatamente igual todas as vezes, não importando os dados que recebesse. As condições permitem que seus programas reajam a situações diferentes, tratem casos extremos e se comportem de forma inteligente.

Neste tutorial, você vai aprender como o Python toma decisões usando if, else e elif. No final, você vai escrever programas que escolhem caminhos diferentes com base na entrada do usuário, em valores calculados e em combinações complexas de condições.

Como funciona a instrução if em Python?

A instrução if é a forma mais simples de tomar uma decisão. Ela verifica uma condição. Se a condição for True, o código indentado logo abaixo é executado. Se a condição for False, o Python pula esse código por completo.

Uma instrução if básica
temperature = 35
if temperature > 30:
print('It\'s hot outside!')
print('Stay hydrated.')
print('Have a great day!')
Saída
It's hot outside!
Stay hydrated.
Have a great day!

Observe a estrutura. A palavra-chave if é seguida por uma condição (temperature > 30) e depois por dois-pontos (:). As linhas abaixo dela estão indentadas: é assim que o Python sabe qual código pertence ao bloco do if. A última linha roda de qualquer jeito, porque não está indentada dentro do if.

Tente mudar a temperatura para 25 no código acima e execute de novo. As duas linhas sobre o calor vão desaparecer, mas você ainda vai ver "Have a great day!", porque essa linha está fora do bloco do if.


Adicionando else: o que acontece quando a condição é falsa?

Uma instrução if sozinha só consegue fazer algo ou não fazer nada. Mas muitas vezes você quer fazer uma coisa quando a condição é verdadeira e outra coisa quando ela é falsa. É para isso que serve o else.

if-else: dois caminhos possíveis
age = 15
if age >= 18:
print('You can vote!')
else:
print('You\'re too young to vote.')
years_left = 18 - age
print(f'Come back in {years_left} years.')
Saída
You're too young to vote.
Come back in 3 years.

Pense no if-else como uma bifurcação na estrada. O Python sempre segue por um caminho ou pelo outro: nunca pelos dois, nunca por nenhum. Exatamente um bloco é executado, toda vez.

Sem else: duas verificações separadas
score = 85

if score >= 60:
    print('You passed!')
if score < 60:
    print('You failed.')
Com else: mais limpo e mais seguro
score = 85

if score >= 60:
    print('You passed!')
else:
    print('You failed.')

A versão com else é melhor por dois motivos. Primeiro, ela é mais curta e mais legível. Segundo, é impossível que os dois blocos rodem, ou que nenhum rode, por acidente. Com duas instruções if separadas, um erro de digitação na segunda condição pode causar bugs.


Como o elif funciona com várias condições?

E se você tiver mais de duas opções? Imagine dar a nota de uma prova: A, B, C, D ou F. Não dá para tratar cinco resultados só com if e else. É aí que entra o elif (abreviação de "else if", ou "senão, se").

Cadeias de elif para várias condições
score = 82
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print(f'Score: {score}, Grade: {grade}')
Saída
Score: 82, Grade: B

O Python verifica as condições de cima para baixo. Assim que encontra uma que é True, ele executa aquele bloco e pula tudo o que vem abaixo. Se nenhuma condição for atendida, o bloco do else roda como uma rede de segurança.

Você pode ter quantos blocos elif quiser. O else no final é opcional, mas é uma boa prática incluí-lo para pegar valores inesperados.


If aninhado: condições dentro de condições

Às vezes você precisa verificar uma segunda condição só depois que a primeira passou. Por exemplo, um brinquedo de parque de diversões pode verificar primeiro se você tem ingresso e depois a sua idade. Você pode colocar uma instrução if dentro de outra instrução if: isso se chama aninhamento.

Instruções if aninhadas
has_ticket = True
age = 14
if has_ticket:
if age >= 12:
print('Welcome to the ride!')
else:
print('Sorry, you must be 12 or older.')
else:
print('You need a ticket first.')
Saída
Welcome to the ride!

O if interno só roda quando o if externo é True. Repare como a indentação fica mais profunda: cada nível de aninhamento acrescenta mais uma camada de indentação.

Muito aninhado: mais difícil de ler
if has_ticket:
    if age >= 12:
        if height >= 120:
            print('Welcome!')
Condições combinadas: mais limpo
if has_ticket and age >= 12 and height >= 120:
    print('Welcome!')

Operador ternário em Python: if-else em uma linha

Às vezes você tem um if-else simples que só atribui um valor. O Python tem um atalho para isso chamado operador ternário (também chamado de expressão condicional). Ele coloca o if-else inteiro em uma linha.

Operador ternário: if-else em uma linha
age = 20
# Regular if-else
if age >= 18:
status = 'adult'
else:
status = 'minor'
print(status)
# Same thing with ternary operator
status = 'adult' if age >= 18 else 'minor'
print(status)
Saída
adult
adult

A sintaxe é: value_if_true if condition else value_if_false. Leia quase como uma frase: "status é 'adult' se a idade for pelo menos 18, senão 'minor'".

O ternário na prática
# Ternary works great in print statements and f-strings
temperature = 28
print(f'Wear a {"coat" if temperature < 15 else "t-shirt"} today.')
# And for quick calculations
x = -5
absolute = x if x >= 0 else -x
print(f'Absolute value of {x} is {absolute}')
Saída
Wear a t-shirt today.
Absolute value of -5 is 5

Erros comuns com if-else

Estes são os bugs mais frequentes de iniciantes com instruções condicionais. Aprenda a reconhecer esses padrões e você vai economizar horas de depuração.

Erro comum: or com vários valores
# Bug: wrong comparison for multiple values
color = 'red'
# This does NOT work as expected
if color == 'red' or 'blue':
print('This always runs!') # Always True!
# This is correct
if color == 'red' or color == 'blue':
print('Red or blue!')
# Even cleaner with "in"
if color in ('red', 'blue', 'green'):
print('Primary color!')
Saída
This always runs!
Red or blue!
Primary color!

Exercícios práticos

Hora de praticar! Estes exercícios vão de instruções if simples até lógicas condicionais mais complexas. Tente resolver cada um antes de olhar as dicas.

Exercício 1: par ou ímpar
Escreva o código

Escreva um programa que verifique se um número é par ou ímpar. Uma variável number já vem com o valor 7.

Exiba "even" se o número for par, ou "odd" se for ímpar.

Saída esperada:

odd

Dica: um número é par se number % 2 == 0 (o resto da divisão por 2 é zero).

number = 7
# Check if the number is even or odd
Exercício 2: conselheiro de temperatura
Escreva o código

Escreva um programa que dê dicas de roupa de acordo com a temperatura. Uma variável temp já vem com o valor 22.

Regras:

  • Se temp for 30 ou mais, exiba "Wear shorts"
  • Se temp for 20 ou mais (mas abaixo de 30), exiba "Wear a t-shirt"
  • Se temp for 10 ou mais (mas abaixo de 20), exiba "Wear a jacket"
  • Abaixo de 10, exiba "Wear a coat"
  • Saída esperada:

    Wear a t-shirt
    temp = 22
    # Give clothing advice based on temperature
    Exercício 3: preveja a saída
    Preveja a saída

    Sem executar o código, preveja o que ele vai exibir. Depois execute para conferir.

    Pense com cuidado em quais condições são True e quais são False.

    x = 15
    if x > 20:
    print('A')
    elif x > 10:
    print('B')
    elif x > 5:
    print('C')
    else:
    print('D')
    print('Done')
    Exercício 4: corrija a calculadora de notas
    Corrija o erro

    Esta calculadora de notas tem um bug. Toda nota recebe o conceito "D", mesmo quando deveria ser "A", "B" ou "C". Corrija a cadeia de elif para que ela funcione corretamente.

    Saída esperada para score = 85:

    Grade: B
    score = 85
    if score >= 60:
    grade = 'D'
    elif score >= 70:
    grade = 'C'
    elif score >= 80:
    grade = 'B'
    elif score >= 90:
    grade = 'A'
    else:
    grade = 'F'
    print(f'Grade: {grade}')
    Exercício 5: preço do ingresso com ternário
    Escreva o código

    Um cinema cobra $12 de adultos (18 anos ou mais) e $8 de crianças (menos de 18). Use o operador ternário para definir o preço em uma linha e depois exiba o valor.

    Uma variável age já vem com o valor 14.

    Saída esperada:

    Ticket price: $8
    age = 14
    # Use a ternary operator to set the price
    price = # your code here
    print(f'Ticket price: ${price}')
    Exercício 6: validador de login
    Escreva o código

    Escreva um validador de login. Duas variáveis já vêm prontas: username e password.

    Regras:

  • Se username for "admin" e password for "secret123", exiba "Welcome, admin!"
  • Se username for "admin" mas a senha estiver errada, exiba "Wrong password"
  • Para qualquer outro username, exiba "User not found"
  • Saída esperada para username = "admin", password = "wrong":

    Wrong password
    username = 'admin'
    password = 'wrong'
    # Write the login validation logic

    Resumo: instruções if-else em Python

    Aqui está tudo o que você aprendeu sobre condicionais em Python:

    ConceitoSintaxePara que serve
    ifif condition:Executa código quando a condição é True
    elseelse:Executa código quando o if é False
    elifelif condition:Verifica condições adicionais
    If aninhadoif dentro de ifDecisões em vários níveis
    Ternáriox if cond else yIf-else em uma linha para valores simples

    Regras importantes para lembrar:

  • Toda linha de if, elif e else termina com dois-pontos (:)
  • O código dentro do bloco precisa estar indentado
  • Numa cadeia de elif, o Python para na primeira condição True
  • Use == para comparar, não = (que é atribuição)
  • Coloque a condição mais restritiva primeiro nas cadeias de elif
  • O que vem a seguir?

    Agora que você sabe tomar decisões, é hora de fazer seus programas repetirem coisas. No próximo tutorial, Laço for em Python, você vai aprender a percorrer listas, intervalos e strings para processar dados sem escrever o mesmo código várias vezes.

    Tutoriais relacionados

    Este tutorial foi útil?