PythonExercícios lógica de programaçãoExercícios Python iniciantesDesafios de lógica PythonPraticar lógica de programação
Lógica de programação python: 5 desafios para sair da “tela em branco”

Rocketseat

A hora de investir em você é AGORA!
Um único investimento. Tudo que você precisa para evoluir na carreira!
Fala, dev! 👋
Se você caiu aqui de paraquedas procurando por exercícios e desafios de lógica de programação com Python, relaxa. Eu sei exatamente o que está passando pela sua cabeça agora: você já conhece a sintaxe do Python, sabe o que são variáveis, loops, funções e condicionais, mas na hora de resolver um problema real, dá aquele famoso branco. A tela fica olhando pra você, e você fica olhando pra tela.
Essa é a diferença entre conhecer o manual do avião e saber pilotá-lo de verdade.
E é exatamente por isso que eu preparei essa nossa nova missão. Vamos treinar no simulador de voo da lógica de programação. São 5 desafios práticos, do mais simples ao mais desafiador, todos com solução completa e explicação. A ideia aqui não é só te dar a resposta, mas te mostrar o raciocínio por trás dela.
Bora codar? 🚀
Travou ou quer compartilhar sua solução? Junte-se às centenas de milhares de desenvolvedores na nossa comunidade no Discord. A galera lá se ajuda muito!
Desafio 1: o dobrador de números (clique para expandir):
A missão
Escreva um programa que pergunta um número inteiro ao usuário e mostra o dobro desse número na tela.

Conceitos em jogo
Aqui você vai praticar
input(), conversão de tipos com int() e operações matemáticas básicas. Parece simples, mas tem um detalhe importante que muita gente esquece.Decolando a solução
numero = int(input('Digite um número: ')) dobro = numero * 2 print(f'O dobro de {numero} é {dobro}')
O que está acontecendo aqui?
Olha que coisa interessante: quando você usa
input(), o Python sempre traz uma string pra você. Sempre. Mesmo que o usuário digite "42", o Python entende como "42" (texto), não como 42 (número).E se você tentar fazer
"42" * 2, o Python vai repetir o texto: "4242". Não é o que queremos, certo?Por isso, a gente precisa converter com
int() antes de fazer qualquer conta. Pensa assim: é como traduzir a resposta do usuário de uma linguagem que o computador entende como texto para a linguagem matemática que ele sabe calcular.A última linha usa f-string pra deixar a resposta mais elegante. Viu as chaves
{}? Elas funcionam como "janelinhas" onde a gente pode inserir o valor das variáveis direto no texto.Desafio 2: o fiscal de velocidade (clique para expandir):
A missão
Escreva um programa que pergunta a velocidade de um carro. Se ultrapassar 80 km/h, exiba uma mensagem dizendo que o usuário foi multado. Nesse caso, exiba o valor da multa, cobrando R$ 7,00 por cada km acima do limite.

Conceitos em jogo
Aqui entramos no território das estruturas condicionais:
if e else. É a primeira vez que o seu programa vai tomar uma decisão sozinho.Decolando a solução
velocidade = int(input('Qual a velocidade do carro? ')) if velocidade > 80: km_acima = velocidade - 80 multa = km_acima * 7 print(f'Você foi multado! A multa é de R$ {multa:.2f}') else: print('Você está dentro do limite. Boa viagem!')
O que está acontecendo aqui?
Pensa no
if/else como uma bifurcação na estrada. O programa chega em um ponto e precisa decidir: "vou pra esquerda ou pra direita?"O operador
> faz a comparação. Se a velocidade for maior que 80, o programa entra no bloco do if e faz todo aquele cálculo da multa. Se não for, ele pula direto pro else e deseja boa viagem.Repare no
{multa:.2f} na f-string. O :.2f é um formatador que garante que o valor vai aparecer com duas casas decimais, igual dinheiro de verdade: R$ 35,00.Desafio 3: o aprovador de alunos (clique para expandir):
A missão
Crie um programa que leia três notas de um aluno, calcule a média e mostre uma mensagem de acordo com a situação:
- Média abaixo de 5.0: REPROVADO
- Média entre 5.0 e 6.9: RECUPERAÇÃO
- Média 7.0 ou superior: APROVADO

Conceitos em jogo
Agora a coisa fica mais interessante. Temos três possibilidades diferentes, então precisamos conhecer o
elif (o "senão se" do Python). Também vamos usar float() pra trabalhar com notas decimais.Decolando a solução
nota1 = float(input('Digite a primeira nota: ')) nota2 = float(input('Digite a segunda nota: ')) nota3 = float(input('Digite a terceira nota: ')) media = (nota1 + nota2 + nota3) / 3 if media < 5.0: print(f'Média: {media:.1f} - REPROVADO') elif media < 7.0: print(f'Média: {media:.1f} - RECUPERAÇÃO') else: print(f'Média: {media:.1f} - APROVADO')
O que está acontecendo aqui?
A diferença entre
if/else e if/elif/else é que agora temos múltiplas condições excludentes. O programa testa cada uma em sequência e executa apenas o bloco da primeira que for verdadeira.Repare que eu usei
media < 5.0 e depois media < 7.0. Não preciso escrever media >= 5.0 and media < 7.0 no elif porque, se o código chegou até ali, já sei que a média não é menor que 5. O Python vai testando de cima pra baixo e para na primeira condição verdadeira.Também usamos
float() em vez de int() porque notas podem ter decimais, tipo 7.5 ou 8.3.Desafio 4: o mestre das tabuadas (clique para expandir):
A missão
Faça um programa que leia um número inteiro qualquer e mostre na tela a sua tabuada de 1 a 10.

Conceitos em jogo
Agora entramos no universo dos loops. O laço
for é o nosso robô de repetição, perfeito quando você sabe exatamente quantas vezes quer repetir algo.Decolando a solução
numero = int(input('Digite um número para ver a tabuada: ')) print(f'\nTabuada do {numero}:') for i in range(1, 11): resultado = numero * i print(f'{numero} x {i} = {resultado}')
O que está acontecendo aqui?
O
for é como um foguete que precisa repetir a mesma manobra várias vezes. Ele pega cada número da sequência gerada por range() e executa o bloco de código.A função
range(1, 11) cria uma sequência de 1 a 10. Sim, o limite superior é 11, mas ele não é incluído. É meio contraintuitivo no começo, mas essa é a lógica do Python. Pensa assim: range(início, parada_antes_daqui).A cada volta do loop, a variável
i recebe o próximo número da sequência (1, depois 2, depois 3...), e a gente usa ela pra fazer a multiplicação e mostrar o resultado.O
\n no primeiro print é um caractere especial que adiciona uma linha em branco antes da tabuada, deixando a saída mais organizada.Desafio 5: o contador de vogais (clique para expandir):
A missão
Crie um programa que peça ao usuário para digitar uma frase e conte quantas vogais (a, e, i, o, u) existem nela.

Conceitos em jogo
Esse é o desafio mais completo da lista. Vamos iterar sobre uma string, usar métodos como
.lower() e praticar o operador in dentro de uma condição.Decolando a solução
frase = input('Digite uma frase: ') contador = 0 for letra in frase.lower(): if letra in 'aeiou': contador += 1 print(f'A frase tem {contador} vogais')
O que está acontecendo aqui?
Aqui tem uns truques bem espertos. Primeiro: o
for pode iterar sobre strings! Ele pega cada caractere da frase, um por vez, como se fosse uma lista.O método
.lower() converte toda a frase pra minúsculas. Isso simplifica muito nossa vida, porque agora só precisamos verificar 'aeiou', não 'aAeEiIoOuU'. Menos código, menos chance de erro.O operador
in verifica se um elemento está dentro de uma sequência. Quando escrevemos if letra in 'aeiou':, estamos perguntando: "essa letra está dentro da string 'aeiou'?". É uma forma muito mais limpa e pythônica do que fazer if letra == 'a' or letra == 'e' or letra == 'i'...O
contador += 1 é uma abreviação de contador = contador + 1. A cada vogal encontrada, incrementamos o contador em 1.Curtiu manipular texto e automatizar tarefas? Esse é só o começo! Imagine usar essa lógica para construir uma API de verdade. Esse é exatamente o próximo passo que damos no nosso Minicurso gratuito de Python com Flask. Bora lá? 💜
Missão cumprida! 🎉
Se você chegou até aqui e resolveu (ou entendeu) os 5 desafios, parabéns! Você acaba de dar o passo mais difícil: transformar teoria em código que funciona.
Você provou que consegue pensar de forma lógica e instruir a máquina a resolver problemas pequenos e isolados. Você treinou no "simulador de voo".
O próximo nível? É conectar tudo isso.
- Como você usa o "Contador de Vogais" para validar um formulário de usuário em uma API?
- Como você usa o "Fiscal de Velocidade" dentro de uma aplicação real que consome dados de um GPS?
- Como você usa a "Tabuada" para gerar um relatório financeiro?
Esses 5 desafios são a fundação. A lógica é a base, mas o que o mercado de trabalho procura é quem sabe construir a casa inteira.
A Formação em Python da Rocketseat é a sua próxima missão. Nela, você vai dominar a linguagem, criar APIs, conectar com bancos de dados e construir os projetos de portfólio que vão decolar sua carreira.
A hora de investir em você é AGORA!
Um único investimento. Tudo que você precisa para evoluir na carreira!
Artigos_
Explore conteúdos relacionados
Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.






