Event emitter basics
Implement an EventEmitter class with subscribe/emit/unsubscribe functionality.
Index of peak element
Implement a function that returns the index of any peak element in a given integer array.
Peak Element in Array
Implement a function that returns the index of any peak element in a list of integers.
Merge Two Sorted Lists
Write a function that merges two sorted lists into a single sorted list.
Argsort Indices
Implement a function that returns the indices that would sort a list of integers, with ties broken by original order.
Lowest Common Ancestor in a Binary Search Tree
Implement a function to find the lowest common ancestor of two node values in a binary search tree.
Memory view slice
Implement chunk_list that splits a list into consecutive sublists of a given chunk size.
Default Argument Trap
Implement a function that safely accumulates items without the classic mutable default argument bug.
Generator Pipeline
Implement a generator function that yields only even numbers from an input list, squared.
Fibonacci Generator
Create a generator function that yields Fibonacci numbers from 0 upward until a given limit.
Pairwise Sequence Pairs
Write a generator function pairwise that yields each consecutive overlapping pair from any iterable as lists.
Groupby Consecutive
Write a generator function that yields (value, list_of_occurrences) for each run of consecutive equal items.
Collatz Generator
Implement a generator function that yields the Collatz sequence starting from a given positive integer.
File Line Reader Generator
Implement a generator function that reads a file-like object and yields each non-empty line without loading the whole file into memory.
Tree inorder generator
Write a generator function that yields a binary tree's node values in inorder traversal.
Graph DFS Generator
Implement a generator function that performs a depth-first traversal of a graph without recursion.
Once Decorator: Run a Function Only Once
Implement a decorator that caches and returns the result of the first call for subsequent calls.
Timing Decorator
Implement a decorator that prints the execution time of a function.
Print Args Decorator
Write a decorator that prints function name and arguments, then returns the original result.
Count calls decorator
Implement a decorator that counts and reports how many times the wrapped function is called.
Log Calls Decorator
Create a decorator that prints call details and returns the original result.
Safe divide function
Implement safe_divide that returns None on ZeroDivisionError and TypeError.
Safe Float Parser
Write a function that safely converts a string to a float, returning None for invalid inputs.
Divide with zero check
Write a function that safely divides two numbers, catching division by zero.
Showing 169–192 of 286 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
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- 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.