Python coding challenges

226 challenges you can solve in Python, from first loops to graphs, dynamic programming and machine learning. Write your code in the browser, run the tests instantly and get an AI review.

Easy · 134 Medium · 68 Hard · 24

Skills you'll practise: CountingDigit extractionString splitting2D listsArithmeticFormulasListsLoopsConditionsDivisibilityFloating pointGradient descent
  • Python · C++ · C#
  • Automated tests
  • AI code review
  • Community solutions
226
Challenges
2
Solutions shared
3
Languages

All challenges

Search by topic, language, or difficulty.

226 challenges
Easy

One Shared Configuration

Simulate a singleton settings object: every part of the program reads and writes the same instance.

You'll learn SingletonShared state
BeginnerDesign patternsSimulation
No solutions yet
Easy

Event Subscribers

Deliver events to the subscribers of each topic, observer style, and count what everyone receives.

You'll learn Observer patternDictionaries
Design patternsSimulationStrings
No solutions yet
Easy

Temperature Sensor Adapter

Adapt readings from Fahrenheit, Kelvin and Celsius sensors to one Celsius interface.

You'll learn Adapter patternUnit conversion
Design patternsParsingmath
No solutions yet
Easy

Shape Factory

Create shapes from text descriptions with a factory and return the area of each one.

You'll learn Factory methodPolymorphism
Design patternsParsingmath
No solutions yet
Medium

Composite Folder Sizes

Compute the total size of every folder in a tree where folders contain files and other folders.

You'll learn Composite patternTrees
Design patternsRecursionTrees
No solutions yet
Medium

Weekly Payroll

Total a week's pay for salaried, hourly and commission employees, each paid by its own rule.

You'll learn PolymorphismOvertime math
ParsingSimulationmath
No solutions yet
Medium

Parallel Task Completion Order

Run tasks concurrently with at most k at a time and report the order in which they finish.

You'll learn ConcurrencyPriority queues
SimulationSorting
No solutions yet
Easy

Price Decorators

Wrap a base price in discount, tax, shipping and coupon decorators applied in order.

You'll learn Decorator patternPercentages
Design patternsSimulationmath
No solutions yet
Easy

Notification Costs

Send messages through email, SMS and push channels that each compute their own cost.

You'll learn PolymorphismInteger division
SimulationStrings
No solutions yet
Medium

Min Stack

Build a stack that reports its smallest element instantly after any push or pop.

You'll learn StacksRunning minimum
Data-structuresStacks
No solutions yet
Medium

SQL Query Builder

Assemble a SQL query from parts given in any order, the way a builder object collects settings step by step.

You'll learn Builder patternString assembly
Design patternsParsingStrings
No solutions yet
Medium

RAII Release Order

Work out the order in which scoped resources are released when their scopes end, as RAII guarantees.

You'll learn RAIIStacks
Data-structuresSimulationStacks
No solutions yet
Easy

Join Customers and Orders

Join customers with their orders like a LINQ Join and report each customer's total spend.

You'll learn LINQ JoinGrouping
ArraysSorting
No solutions yet
Easy

Count Log Levels

Read the lines of a log file and count how many are INFO, WARNING and ERROR.

You'll learn Reading linesString splitting
BeginnerParsingStrings
No solutions yet
Easy

First Invalid Age

Validate typed ages and report where the first bad entry is instead of letting the program crash.

You'll learn ValidationParsing
BeginnerParsingStrings
No solutions yet
Easy

Vehicle Tolls

Charge tolls for motorbikes, cars and trucks where trucks extend the basic vehicle rule with axles.

You'll learn InheritanceMethod overriding
BeginnerSimulation
No solutions yet
Easy

Build a JSON Object

Turn keys and values into a JSON object string, escaping quotes and backslashes correctly.

You'll learn JSON formatEscaping
ParsingStrings
No solutions yet
Easy

Sum a Flat JSON Object

Parse a flat JSON object whose values are integers and add up the values.

You'll learn JSON parsingString splitting
ParsingStrings
No solutions yet