Lógica de programação python: 5 desafios para sair da “tela em branco”

Rocketseat

Rocketseat

6 min de leitura
python
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.
A metamorfose digital da cobra Python, ilustrando a evolução da lógica e do código de sua forma bruta para uma estrutura elegante. Esta imagem foi gerada por IA usando o Gemini.
A metamorfose digital da cobra Python, ilustrando a evolução da lógica e do código de sua forma bruta para uma estrutura elegante. Esta imagem foi gerada por IA usando o Gemini.

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.
Engrenagens digitais interligadas, simbolizando o fluxo lógico e os mecanismos de controle na programação Python. Esta imagem foi gerada por IA usando o Gemini
Engrenagens digitais interligadas, simbolizando o fluxo lógico e os mecanismos de controle na programação Python. Esta imagem foi gerada por IA usando o Gemini

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
Circuitos luminosos pulsando em uma representação abstrata do cérebro, com o ícone Python no centro, simbolizando o pensamento lógico e a inteligência computacional. Esta imagem foi gerada por IA usando o Gemini.
Circuitos luminosos pulsando em uma representação abstrata do cérebro, com o ícone Python no centro, simbolizando o pensamento lógico e a inteligência computacional. Esta imagem foi gerada por IA usando o Gemini.

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.
Mãos digitais futuristas digitando em um teclado holográfico, com linhas de código Python flutuando como feixes de luz, representando a inovação na programação. Esta imagem foi gerada por IA usando o Gemini.
Mãos digitais futuristas digitando em um teclado holográfico, com linhas de código Python flutuando como feixes de luz, representando a inovação na programação. Esta imagem foi gerada por IA usando o Gemini.

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.
Gráfico de linha ascendente com circuitos luminosos e símbolos de Python, representando o crescimento e a evolução na lógica de programação. Esta imagem foi gerada por IA usando o Gemini.
Gráfico de linha ascendente com circuitos luminosos e símbolos de Python, representando o crescimento e a evolução na lógica de programação. Esta imagem foi gerada por IA usando o Gemini.

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.