Em Python, existem duas formas principais de expressar condicionais: a estrutura if/elif/else e a expressão ternária.
Estrutura if/else
A estrutura if/else permite executar um bloco de código se a condição for verdadeira, ou outro se for falsa. A sintaxe é a seguinte:
if condicao:
# bloco de código a ser executado se a condição for verdadeira
else:
# bloco de código a ser executado se a condição anteriores for falsa
Exemplos: Usando a estrutura if-else para fazer escolhas:
x = 10
if x > 0:
print("x é positivo")
else:
print("x é negativo ou zero")
Escreva um programa em Python que peça ao usuário para digitar uma palavra e verifique se a palavra é um palíndromo (ou seja, se ela é igual quando lida de trás para frente).
palavra = input("Digite uma palavra: ")
if palavra == palavra[::-1]:
print("A palavra é um palíndromo.")
else:
print("A palavra não é um palíndromo.")
Nesse algoritmo, usamos a função input() para pedir que o usuário digite uma palavra. Em seguida, usamos um condicional if para verificar se a palavra é igual a ela mesma quando lida de trás para frente (usando a técnica de slicing com a notação [::-1]). Se a palavra for um palíndromo, exibimos uma mensagem indicando isso. Caso contrário, exibimos uma mensagem indicando que a palavra não é um palíndromo.
Condicional aninhada if/elif/else
São condicionais seguidas ou dentro de outras condicionais. A estrutura if/elif/else permite executar diferentes blocos de código dependendo de uma ou mais condições. A sintaxe é a seguinte:
if condicao1:
# bloco de código a ser executado se a condicao1 for verdadeira
elif condicao2:
# bloco de código a ser executado se a condicao1 for falsa e a condicao2 for verdadeira
else:
# bloco de código a ser executado se todas as condições anteriores forem falsas
# Fazendo escolhas múltiplas usando a estrutura if-elif-else
x = 10
if x < 0:
print("x é negativo")
elif x == 0:
print("x é zero")
else:
print("x é positivo")
Exemplo: Elabore um algoritmo para checar se uma pessoa pode dirigir:
idade = 18
tem_carteira = True
if idade >= 18:
if tem_carteira:
print("Pode dirigir")
else:
print("Não pode dirigir, pois não tem carteira de motorista")
else:
print("Não pode dirigir, pois é menor de idade")
Nesse exemplo, temos duas condições aninhadas: a primeira checa se a pessoa é maior de idade, e a segunda checa se ela tem carteira de motorista. Se ambas as condições forem verdadeiras, o programa imprime a mensagem "Pode dirigir". Caso contrário, o programa imprime uma mensagem diferente.
Expressão ternária
A expressão ternária é uma forma concisa de escrever uma condicional em uma única linha de código. A sintaxe é a seguinte:
valor_se_verdadeiro if condicao else valor_se_falso
Exemplos:
# Usando o operador condicional para simplificar o código
x = 10
result = "x é positivo" if x > 0 else "x é negativo ou zero"
print(result)
Exemplo: uma função que retorna a maior idade.
idade = 18
status = "maior de idade" if idade >= 18 else "menor de idade"
print(status)
Nesse exemplo, a expressão idade >= 18 é avaliada primeiro. Se for verdadeira, a variável status receberá o valor "maior de idade". Caso contrário, status receberá o valor "menor de idade". O resultado impresso no console será "maior de idade", já que a idade é igual a 18, e portanto maior ou igual a 18.
Exceções
Podemos fazer testes para evitar erros, e assim permitir que o programa se recupere e continue executando mesmo em situações inesperadas.
Por exemplo, o programa tenta ler dois números do usuário e realizar uma divisão entre eles. No entanto, como podemos ter vários tipos de erros nessa operação (o usuário pode digitar um valor que não é um número inteiro, ou pode tentar dividir por zero), utilizamos a estrutura try/except para capturar e tratar esses erros. Confira no seguinte código em Python:
try:
x = int(input("Digite um número: "))
y = int(input("Digite outro número: "))
resultado = x / y
print("O resultado da divisão é:", resultado)
except ValueError:
print("Erro: um dos valores digitados não é um número inteiro")
except ZeroDivisionError:
print("Erro: divisão por zero")
except Exception as e:
print("Ocorreu um erro inesperado:", e)
Neste exemplo, dentro do bloco try, tentamos ler os valores e realizar a divisão. Se algum erro ocorrer, o programa pula para o bloco except correspondente. Nesse caso, temos três blocos except: um para tratar erros de ValueError (que ocorre quando o usuário digita um valor que não é um número inteiro), um para tratar erros de ZeroDivisionError (que ocorre quando o usuário tenta dividir por zero) e um último bloco para tratar erros genéricos (usando a classe Exception).
Exercícios
- Escreva um programa que peça ao usuário para digitar a sua idade e informe se ele é maior ou menor de idade.
- Escreva um programa que peça ao usuário para digitar dois números e informe qual é o maior.
- Escreva um programa que peça ao usuário para digitar uma letra e informe se ela é uma vogal ou uma consoante.
- Escreva um programa que peça ao usuário para digitar um número e informe se ele é positivo, negativo ou zero.
- Escreva um programa que peça ao usuário para digitar o seu salário e informe qual é o seu imposto de renda de acordo com a tabela abaixo:
- Até R$ 1.903,98: isento
- De R$ 1.903,99 até R$ 2.826,65: 7,5%
- De R$ 2.826,66 até R$ 3.751,05: 15%
- De R$ 3.751,06 até R$ 4.664,68: 22,5%
- Acima de R$ 4.664,68: 27,5%
- Escreva um programa que peça ao usuário para digitar a sua altura e o seu peso e informe se ele está abaixo do peso, no peso ideal ou acima do peso. Para isso, utilize o índice de massa corporal (IMC), que é calculado pela fórmula:
- Para homens: peso ideal = (72.7 x altura) - 58
- Para mulheres: peso ideal = (62.1 x altura) - 44.7