Desafios de programação em Python

226 desafios que você pode resolver em Python, dos primeiros laços a grafos, programação dinâmica e machine learning. Escreva seu código no navegador, rode os testes na hora e receba uma revisão por IA.

Fácil · 134 Médio · 68 Difícil · 24

Habilidades que você vai praticar: ContagemExtrair dígitosAritméticaFórmulasLaçosListasListas 2DAcompanhar o máximoCondiçõesDescida de gradienteDividir stringsDivisibilidade
  • Python · C++ · C#
  • Testes automáticos
  • Revisão de código por IA
  • Soluções da comunidade
226
Desafios
2
Soluções compartilhadas
3
Linguagens

Todos os desafios

Busque por tema, linguagem ou dificuldade.

226 desafios
Fácil

Uma configuração compartilhada

Simule um objeto de configurações singleton: cada parte do programa lê e escreve a mesma instância.

Você vai aprender SingletonEstado compartilhado
BeginnerPadrões de projetoSimulation
Ainda sem soluções
Fácil

Assinantes de eventos

Entregue eventos aos assinantes de cada tópico, no estilo observer, e conte o que cada pessoa recebe.

Você vai aprender Padrão ObserverDicionários
Padrões de projetoSimulationStrings
Ainda sem soluções
Fácil

Adaptador de sensores de temperatura

Adapte leituras de sensores Fahrenheit, Kelvin e Celsius para uma única interface em Celsius.

Você vai aprender Padrão AdapterConversão de unidades
Padrões de projetoParsingmath
Ainda sem soluções
Fácil

Fábrica de formas

Crie formas a partir de descrições em texto com uma factory e retorne a área de cada uma.

Você vai aprender Factory methodPolimorfismo
Padrões de projetoParsingmath
Ainda sem soluções
Médio

Folha de pagamento semanal

Some o pagamento de uma semana para funcionários assalariados, por hora e por comissão, cada um pago pela sua própria regra.

Você vai aprender PolimorfismoCálculo de horas extras
ParsingSimulationmath
Ainda sem soluções
Médio

Tamanhos de pastas com Composite

Calcule o tamanho total de cada pasta em uma árvore onde pastas contêm arquivos e outras pastas.

Você vai aprender Padrão CompositeÁrvores
Padrões de projetoRecursionTrees
Ainda sem soluções
Fácil

Decoradores de preço

Envolva um preço base em decoradores de desconto, imposto, frete e cupom aplicados em ordem.

Você vai aprender Padrão DecoratorPorcentagens
Padrões de projetoSimulationmath
Ainda sem soluções
Fácil

Custo das notificações

Envie mensagens por email, SMS e push, com cada canal calculando o próprio custo.

Você vai aprender PolimorfismoDivisão inteira
SimulationStrings
Ainda sem soluções
Médio

Ordem de conclusão de tarefas paralelas

Execute tarefas concorrentemente com no máximo k por vez e informe a ordem em que elas terminam.

Você vai aprender ConcorrênciaFilas de prioridade
SimulationSorting
Ainda sem soluções
Médio

Pilha com mínimo

Construa uma pilha que informe seu menor elemento instantaneamente após qualquer push ou pop.

Você vai aprender PilhasMínimo acumulado
Data-structuresStacks
Ainda sem soluções
Médio

Construtor de consultas SQL

Monte uma consulta SQL a partir de partes fornecidas em qualquer ordem, do mesmo jeito que um objeto builder coleta configurações passo a passo.

Você vai aprender Padrão BuilderMontagem de strings
Padrões de projetoParsingStrings
Ainda sem soluções
Fácil

Pedágios de veículos

Cobre pedágios para motos, carros e caminhões, onde caminhões estendem a regra básica de veículos com eixos.

Você vai aprender HerançaSobrescrita de métodos
BeginnerSimulation
Ainda sem soluções
Fácil

Primeira idade inválida

Valide idades digitadas e informe onde está a primeira entrada inválida, em vez de deixar o programa quebrar.

Você vai aprender ValidaçãoAnálise de texto
BeginnerParsingStrings
Ainda sem soluções
Fácil

Juntar clientes e pedidos

Junte clientes e pedidos como um Join do LINQ e informe o gasto total de cada cliente.

Você vai aprender LINQ JoinAgrupamento
ArraysSorting
Ainda sem soluções
Fácil

Contar níveis de log

Leia as linhas de um arquivo de log e conte quantas são INFO, WARNING e ERROR.

Você vai aprender Leitura por linhasDivisão de strings
BeginnerParsingStrings
Ainda sem soluções
Médio

Ordem de liberação RAII

Descubra a ordem em que os recursos em escopos são liberados quando seus escopos terminam, como o RAII garante.

Você vai aprender RAIIPilhas
Data-structuresSimulationStacks
Ainda sem soluções
Fácil

Tempo total com WhenAll

Descubra quanto tempo um programa leva quando cada grupo de tarefas executa junto com Task.WhenAll e os grupos executam um após o outro.

Você vai aprender Async/awaitTask.WhenAll
ArraysBeginner
Ainda sem soluções
Fácil

Somar os números válidos

Some as entradas que são números inteiros e ignore todo o resto, do jeito que try/except lida com entrada inválida.

Você vai aprender Try/exceptValidação de entrada
BeginnerParsingStrings
Ainda sem soluções