Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
Iterators & Generators easy

Flatten Nested List Iterator

Implement a class that iterates over all integers in a nested list structure in depth-first order.

iterator generator flatten
+10 pts 15m
Iterators & Generators easy

Iterator protocol class

Implement a class that follows the iterator protocol and yields squared numbers up to a given limit.

iterator-protocol class lazy-evaluation
+10 pts 10m
Iterators & Generators easy

Batch Iterator

Implement a generator that yields batches of a given size from any iterable, including the final partial batch.

generators iterators chunking
+10 pts 15m
Iterators & Generators easy

Zip Longest Fill

Create an iterator that yields lists from multiple iterables, padding with a fill value when lengths differ.

generators zip iteration
+8 pts 12m
Iterators & Generators easy

Graph DFS Generator

Implement a generator function that performs a depth-first traversal of a graph without recursion.

generators dfs graph
+8 pts 12m
Iterators & Generators easy

Close generator early

Wrap any iterable in a generator that tracks yielded items and supports close() correctly.

generators context-manager close-method
+8 pts 10m
Decorators & Context Managers easy

Once Decorator: Run a Function Only Once

Implement a decorator that caches and returns the result of the first call for subsequent calls.

decorators closures caching
+8 pts 10m
Decorators & Context Managers easy

Timing Decorator

Implement a decorator that prints the execution time of a function.

decorators time performance
+10 pts 15m
Decorators & Context Managers easy

Context Manager Class

Implement a context manager class that measures execution time and sets duration, with None if an exception occurred.

context-manager classes timing
+8 pts 12m
Decorators & Context Managers easy

Print Args Decorator

Write a decorator that prints function name and arguments, then returns the original result.

decorators functions wrappers
+10 pts 10m
Decorators & Context Managers easy

File Open Context Manager

Create a class that acts as a context manager for opening a virtual file in memory.

context-manager file-io python
+10 pts 15m
Decorators & Context Managers easy

Timer Context Manager

Implement a context manager that measures execution time of a with block and stores it.

context-manager timing measurement
+10 pts 15m
Decorators & Context Managers easy

Suppress stderr manager

Implement a context manager that suppresses all output written to stderr during its block.

context-managers stderr redirect
+8 pts 10m
Decorators & Context Managers easy

Context Decorator Dual

Implement a timing decorator and a context manager that both record elapsed time in seconds.

decorator context-manager time
+10 pts 15m
Decorators & Context Managers easy

Count calls decorator

Implement a decorator that counts and reports how many times the wrapped function is called.

decorator closure function
+10 pts 15m
Decorators & Context Managers easy

Log Calls Decorator

Create a decorator that prints call details and returns the original result.

decorators logging function-wrappers
+10 pts 15m
Decorators & Context Managers easy

Lock Context Manager

Implement a Lock class with acquire/release and context manager support.

context-manager threading lock
+8 pts 12m
Decorators & Context Managers easy

Class-based decorator with call validation

Build a class-based decorator that validates a single argument's type and logs successful invocation.

decorators class validation
+8 pts 15m
Error Handling & Exceptions easy

Safe Integer from String

Implement safe_int that converts a string to an integer, returning a default value on any failure, with support for an optional base.

exceptions parsing default-value
+10 pts 15m
Error Handling & Exceptions easy

Safe divide function

Implement safe_divide that returns None on ZeroDivisionError and TypeError.

try-except division error-handling
+8 pts 10m
Error Handling & Exceptions easy

Safe int parser

Implement safe_parse_int that converts a string to an int, returning a default value on failure.

exceptions parsing validation
+10 pts 10m
Error Handling & Exceptions easy

Safe Float Parser

Write a function that safely converts a string to a float, returning None for invalid inputs.

float exception parsing
+10 pts 10m
Error Handling & Exceptions easy

Divide with zero check

Write a function that safely divides two numbers, catching division by zero.

exceptions division error-handling
+8 pts 10m
Error Handling & Exceptions easy

Key error handler

Implement a safe dictionary access function that returns a default value on missing keys.

exceptions dict fallback
+8 pts 10m

Showing 337–360 of 556 challenges · easy

Guide: free Python coding challenges

Practice Python by solving problems

PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.

How to use the arena

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. Run tests, fix failures, then try a related quiz or tutorial lesson

Challenges vs tutorials and quizzes

Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.