Python do Zero: condicionais com if, elif e else
Aprenda a fazer seu programa tomar decisões com estruturas condicionais.
O que são condicionais?
Quando você escreve um programa, nem sempre quer que todas as linhas sejam executadas na mesma ordem. Às vezes, o programa precisa tomar decisões: se uma condição for verdadeira, ele faz uma coisa; se for falsa, faz outra. É exatamente isso que as estruturas condicionais permitem.
Pense em situações do dia a dia: "Se estiver chovendo, levo guarda-chuva. Senão, saio sem ele." Em Python, essa lógica é representada com if, elif e else.
if simples
A forma mais básica de condicional é o if. Ele executa um bloco de código apenas se a condição for verdadeira (True):
idade = 18
if idade >= 18:
print("Voce e maior de idade.")
Pontos importantes:
- A condição vem logo após o if e termina com dois-pontos :
- O bloco de código que pertence ao if precisa estar indentado (geralmente 4 espaços)
- Se a condição for False, o bloco é simplesmente ignorado
if/else
Na maioria das vezes, você quer executar algo quando a condição é verdadeira e algo diferente quando ela é falsa. Para isso, usamos o else:
temperatura = 15
if temperatura >= 25:
print("Esta quente, vista algo leve.")
else:
print("Esta frio, leve um casaco.")
O else não recebe nenhuma condição — ele cobre todos os casos que o if não cobriu.
if/elif/else com múltiplas condições
Quando existem mais de duas possibilidades, o elif (abreviação de "else if") permite testar condições adicionais:
nota = float(input("Digite sua nota: "))
if nota >= 9:
conceito = "A"
elif nota >= 7:
conceito = "B"
elif nota >= 5:
conceito = "C"
elif nota >= 3:
conceito = "D"
else:
conceito = "F"
print(f"Seu conceito e: {conceito}")
O Python avalia as condições de cima para baixo. Assim que encontra uma verdadeira, executa aquele bloco e pula todo o resto. Se nenhuma condição for verdadeira, o bloco do else é executado.
Operadores de comparação
Antes de avançar, vale relembrar os operadores que usamos dentro das condições:
# Comparacao
print(10 == 10) # True - igual a
print(10 != 5) # True - diferente de
print(10 > 5) # True - maior que
print(10 < 20) # True - menor que
print(10 >= 10) # True - maior ou igual a
print(10 <= 3) # False - menor ou igual a
Operadores lógicos: and, or e not
Os operadores lógicos permitem combinar várias condições em uma única expressão:
idade = 20
tem_carteira = True
# and - ambas as condicoes precisam ser verdadeiras
if idade >= 18 and tem_carteira:
print("Pode dirigir.")
# or - pelo menos uma condicao precisa ser verdadeira
tem_passe = False
e_estudante = True
if tem_passe or e_estudante:
print("Tem direito ao desconto.")
# not - inverte o valor logico
logado = False
if not logado:
print("Faca login para continuar.")
Você pode combinar quantos operadores quiser, mas cuidado para não deixar a expressão confusa. Use parênteses para deixar a intenção clara:
idade = 25
renda = 3000
tem_fiador = True
if (idade >= 21 and renda >= 2500) or tem_fiador:
print("Credito aprovado.")
else:
print("Credito negado.")
Condicionais aninhadas
Às vezes, é necessário colocar um if dentro de outro if. Isso é chamado de condicional aninhada:
tem_conta = True
saldo = 150.0
valor_saque = 200.0
if tem_conta:
if saldo >= valor_saque:
print(f"Saque de R${valor_saque:.2f} realizado com sucesso.")
else:
print("Saldo insuficiente.")
else:
print("Voce nao possui conta.")
Condicionais aninhadas funcionam bem, mas evite aninhar muitos níveis. Quando a lógica fica complexa demais, considere usar elif ou reorganizar o código.
Operador ternário
Python permite escrever condicionais simples em uma única linha usando o operador ternário:
idade = 20
status = "maior de idade" if idade >= 18 else "menor de idade"
print(status) # maior de idade
A estrutura é: valor_se_verdadeiro if condicao else valor_se_falso. Use o ternário apenas quando a expressão for curta e fácil de entender:
numero = 7
tipo = "par" if numero % 2 == 0 else "impar"
print(f"O numero {numero} e {tipo}.") # O numero 7 e impar.
Exemplo prático: calculadora simples
Vamos juntar tudo o que aprendemos em um exemplo mais completo — uma calculadora que recebe dois números e uma operação do usuário:
print("=== Calculadora ===")
n1 = float(input("Primeiro numero: "))
n2 = float(input("Segundo numero: "))
op = input("Operacao (+, -, *, /): ")
if op == "+":
resultado = n1 + n2
elif op == "-":
resultado = n1 - n2
elif op == "*":
resultado = n1 * n2
elif op == "/":
if n2 != 0:
resultado = n1 / n2
else:
resultado = None
print("Erro: divisao por zero nao e permitida.")
else:
resultado = None
print(f"Operacao '{op}' nao reconhecida.")
if resultado is not None:
print(f"{n1} {op} {n2} = {resultado}")
Repare como usamos uma condicional aninhada para verificar a divisão por zero e o operador is not para checar se o resultado existe antes de exibi-lo.
Conclusão
As estruturas condicionais são fundamentais em qualquer programa. Com if, elif e else, seu código ganha a capacidade de tomar decisões e reagir de forma diferente conforme os dados que recebe. Combine isso com operadores de comparação e lógicos, e você terá controle total sobre o fluxo do seu programa. O próximo passo é aprender laços de repetição com for e while para executar blocos de código múltiplas vezes.