Entrada, Saída & Condicionais
Como o programa conversa com o usuário — ler dados com input(), mostrar com print() e f-strings — e como tomar decisões com if, elif e else.
Saída de dados: print() 🖨️
Um programa precisa se comunicar com quem o usa. A função print() é a forma mais direta de mostrar informação na tela — mensagens, resultados de cálculos, o valor de uma variável.
print("Olá, mundo!") # Mostrando o valor de uma variável nome = "Ana" print(nome) # Vários valores separados por vírgula (insere um espaço entre eles) print("Nome:", nome)
"nome" mostra a palavra nome). Sem aspas, é uma variável (nome mostra o valor guardado nela).
Entrada de dados: input() ⌨️
Para o programa receber dados de quem o usa, usamos a função input(). Ela pausa o programa, espera a pessoa digitar algo e apertar Enter, e devolve o que foi digitado.
nome = input("Digite o seu nome: ") print("Bem-vindo,", nome)
25, o Python guarda como o texto "25" — e não dá para fazer contas com texto. Para trabalhar com números, é preciso converter.
Convertemos o texto com int() (número inteiro) ou float() (número com casas decimais):
# Convertendo a entrada para número inteiro idade = int(input("Digite a sua idade: ")) # Convertendo para número com casas decimais altura = float(input("Digite a sua altura (m): ")) print("Ano que vem você terá", idade + 1, "anos.")
Operadores
Com dados na mão, precisamos operar sobre eles: fazer contas, comparar valores e combinar condições. São três famílias de operadores.
Aritméticos
a = 10 b = 5 print(a + b) # Adição -> 15 print(a - b) # Subtração -> 5 print(a * b) # Multiplicação -> 50 print(a / b) # Divisão -> 2.0 print(10 // 3) # Divisão inteira -> 3 print(10 % 3) # Resto (módulo) -> 1 print(2 ** 3) # Potência -> 8
2 + 3 * 4 ** 2 → 50; já (2 + 3) * 4 → 20.
Comparação (resultam em True ou False)
x = 10 y = 20 print(x == y) # Igual a -> False print(x != y) # Diferente de -> True print(x < y) # Menor que -> True print(x >= y) # Maior ou igual -> False
Lógicos: and, or, not
a = True b = False print(a and b) # E: só True se ambos forem True -> False print(a or b) # OU: True se ao menos um for True -> True print(not a) # NÃO: inverte -> False
f-strings — formatando a saída
Introduzidas no Python 3.6, as f-strings (formatted string literals) são a forma mais legível de montar mensagens com valores dentro. Basta colocar um f antes das aspas e escrever as expressões entre chaves {}.
nome = "Ana" idade = 25 mensagem = f"Meu nome é {nome} e tenho {idade} anos." print(mensagem) # Saída: Meu nome é Ana e tenho 25 anos.
Dentro das chaves cabe qualquer expressão Python: contas, chamadas de função e métodos.
a = 5 b = 3 print(f"A soma de {a} e {b} é {a + b}.") # A soma de 5 e 3 é 8. nome = "python" print(f"{nome.upper()} é incrível!") # PYTHON é incrível!
Também dá para formatar números: :.2f limita as casas decimais e :, adiciona separador de milhares.
pi = 3.14159 print(f"Pi com 2 casas: {pi:.2f}") # Pi com 2 casas: 3.14 grande = 1000000 print(f"Número formatado: {grande:,}") # 1,000,000
nome = input("Nome: ") e depois print(f"Olá, {nome}!") — você lê o dado e devolve uma mensagem personalizada. É a base de quase todo programa interativo.
Condicionais: if, elif, else
Estruturas condicionais permitem que o programa tome decisões — executar um bloco ou outro dependendo de uma condição, que é sempre avaliada como True ou False.
if — "se a condição for verdadeira"
idade = 18 if idade >= 18: print("Você é maior de idade.")
if termina com dois-pontos : e o bloco que depende dela fica indentado (recuado, geralmente 4 espaços). A indentação é o que diz ao Python "isto está dentro do if".
else — "senão, faça outra coisa"
idade = 16 if idade >= 18: print("Você é maior de idade.") else: print("Você é menor de idade.")
elif — "senão, se..." (várias condições)
O elif (abreviação de else if) testa uma nova condição, e só é avaliado se as anteriores forem falsas.
nota = 85 if nota >= 90: print("Aprovado com nota excelente!") elif nota >= 70: print("Aprovado.") else: print("Reprovado.")
Condições compostas e aninhadas
Combinando os operadores lógicos com as condicionais, dá para expressar regras mais ricas.
Condição composta (and / or)
idade = 25 salario = 3000 # idade entre 18 e 30 E salário maior que 2000 if 18 <= idade <= 30 and salario > 2000: print("Condição atendida.") else: print("Condição não atendida.")
Condição aninhada (um if dentro de outro)
idade = 20 habilitacao = True if idade >= 18: if habilitacao: print("Você pode dirigir.") else: print("Você precisa de habilitação.") else: print("Você não tem idade suficiente.")
=) guarda um valor numa variável. Dois (==) perguntam se dois valores são iguais. Dentro de um if, quase sempre você quer == — usar = dá SyntaxError.
Resumo
Saída
Mostra informação na tela. Vários valores separados por vírgula.
Entrada
Lê o que a pessoa digita — sempre texto. Converta com int() ou float().
f-string
Monta mensagens com valores e expressões. Formata com :.2f e :,.
Decidir
Executa blocos conforme condições True/False. Dois-pontos e indentação.
input), converta a nota para número, e use if / elif / else para imprimir com uma f-string: "Aprovado" (nota ≥ 7), "Recuperação" (entre 5 e 7) ou "Reprovado" (menor que 5) — sempre incluindo o nome do aluno.
Exercícios — Pizzaria do Tio Will
Pratique entrada de dados e estruturas de decisão ajudando a Pizzaria do Tio Will. Em todos os exercícios, leia os dados com input() e use if / elif / else.
input() sempre devolve texto (string). Para fazer contas (distância, valor do pedido), converta para número: distancia = float(input("Distância em km: ")). Já o dia da semana continua como texto — compare com ==.
Frete por distância
A Pizzaria do Tio Will cobra o frete de acordo com a distância entre a pizzaria e a casa do cliente. Sua tarefa é descobrir quanto custa a entrega para cada cliente.
| Distância | Frete |
|---|---|
| Até 5 km | R$ 5,00 ✅ |
| 6 km a 10 km | R$ 10,00 ✅ |
| Acima de 10 km | Não entrega ❌ |
- Ler a distância em km com
input()e convertê-la parafloat - Usar
if / elif / elsepara decidir a faixa de frete - Imprimir o valor do frete — ou avisar que não há entrega naquela distância
# input() sempre devolve texto → converta para número
distancia = float(input("Digite a distância em km: "))
Digite a distância em km: 3 Frete: R$ 5,00 Digite a distância em km: 8 Frete: R$ 10,00 Digite a distância em km: 12 Não entregamos nessa distância. 😕
input() sempre devolve texto. Para comparar a distância com números, é preciso convertê-la com float() antes do if.distancia <= 5, depois distancia <= 10 no elif, e deixe o else para "não entrega".distancia = float(input("Digite a distância em km: "))
if distancia <= 5:
print("Frete: R$ 5,00")
elif distancia <= 10:
print("Frete: R$ 10,00")
else:
print("Não entregamos nessa distância. 😕")
Frete com taxa fixa + valor por km
Agora a pizzaria cobra uma taxa fixa de R$ 5,00 por entrega, somada a um valor por quilômetro que depende da faixa de distância.
| Distância | Valor por km |
|---|---|
| Até 5 km | R$ 1,00 / km |
| 6 km a 10 km | R$ 2,00 / km |
| Acima de 10 km | Não entrega ❌ |
- Ler a distância com
input()e convertê-la parafloat - Descobrir o valor por km da faixa com
if / elif / else - Calcular
frete = 5 + distancia * valor_kme imprimir o total
distancia = float(input("Digite a distância em km: "))
taxa_fixa = 5.00 # cobrada em toda entrega
Digite a distância em km: 8 Frete: R$ 21,00 Digite a distância em km: 3 Frete: R$ 8,00 Digite a distância em km: 11 Não entregamos nessa distância. 😕
f"R$ {frete:.2f}" e depois .replace(".", ",").valor_km da faixa; só depois calcule o frete. Assim você escreve a fórmula uma única vez.distancia = float(input("Digite a distância em km: "))
taxa_fixa = 5.00
if distancia <= 5:
valor_km = 1.00
elif distancia <= 10:
valor_km = 2.00
else:
valor_km = None
if valor_km is None:
print("Não entregamos nessa distância. 😕")
else:
frete = taxa_fixa + distancia * valor_km
print(f"Frete: R$ {frete:.2f}".replace(".", ","))
Promoção por dia da semana — Pizzaria Sabores
A Pizzaria Sabores agora tem promoções especiais que dependem do dia da semana para atrair mais clientes. Sua tarefa é criar um programa que calcula o valor final de um pedido, aplicando o desconto ou benefício específico caso a compra seja feita em um dia de promoção. Sobre o pedido soma-se uma taxa de entrega fixa de R$ 5,00, exceto quando a promoção der frete grátis.
| Dia | Promoção |
|---|---|
| Terça-feira | Pedidos acima de R$ 40,00 recebem uma sobremesa grátis 🍰 (exiba uma mensagem) |
| Quarta-feira | Todas as pizzas têm 15% de desconto |
| Sábado e domingo | Pedidos acima de R$ 100,00 têm a taxa de entrega grátis 🚚 (a taxa fixa de R$ 5,00 não é cobrada) |
| Demais dias | Não há promoção |
- Ler o dia da semana (texto) e o valor do pedido com
input() - Usar condições compostas com
and/or— atenção aos parênteses - Aplicar a promoção do dia (sobremesa grátis, 15% de desconto ou frete grátis)
- Somar a taxa de entrega de R$ 5,00 ao valor, exceto quando o pedido tiver frete grátis
- Exibir o valor final do pedido
- Mariana: comprou R$ 80,00 na terça-feira.
- Guilherme: comprou uma pizza de R$ 50,00 na quarta-feira.
- Rafael: comprou R$ 120,00 no domingo e mora a 4 km.
# .lower() deixa tudo minúsculo → facilita a comparação
dia = input("Dia da semana: ").lower()
valor = float(input("Valor do pedido: R$ "))
Dia da semana: terça Valor do pedido: R$ 80 🍰 Você ganhou uma sobremesa grátis! Total a pagar: R$ 85,00 Dia da semana: quarta Valor do pedido: R$ 50 Desconto de 15% aplicado! Total a pagar: R$ 47,50 Dia da semana: domingo Valor do pedido: R$ 120 🚚 Frete grátis! Total a pagar: R$ 120,00
==. Use .lower() ao ler o dia para que "Terça", "TERÇA" e "terça" funcionem igual.(dia == "sábado" or dia == "domingo") and valor > 100. Os parênteses garantem a ordem correta da avaliação.