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
Data Structures & Algorithms easy

Peak Element in Array

Implement a function that returns the index of any peak element in a list of integers.

array search indices
+10 pts 15m
Data Structures & Algorithms medium

K Closest Elements

Implement a function to return the k closest elements to a target in a sorted array.

arrays binary-search sorting
+25 pts 25m
Data Structures & Algorithms medium

Online Stock Span

Implement StockSpanner.next(price) that returns the maximum number of consecutive days (including today) with price <= current price.

stack monotonic-stack stock-span
+20 pts 25m
Data Structures & Algorithms easy

Jump Search

Implement the jump search algorithm to locate a target in a sorted list, returning its index or -1.

search sorted list
+10 pts 15m
Data Structures & Algorithms medium

AST Visitor Lite

Implement a depth-first traversal of a simplified AST and return identifier names in order.

trees traversal ast
+20 pts 20m
Data Structures & Algorithms medium

Merge time intervals

Given a list of time intervals, merge all overlapping intervals and return the merged intervals.

intervals sorting arrays
+20 pts 20m
Data Structures & Algorithms medium

Top N per group

Implement top_n_per_group that returns the top N scores for each group from a list of (group, score) pairs.

sorting grouping dictionaries
+25 pts 25m
Data Structures & Algorithms easy

Consecutive available seats

Given a list of seat statuses, return the length of the longest consecutive run of available (0) seats.

arrays sliding-window greedy
+10 pts 15m
Data Structures & Algorithms easy

Argsort Indices

Implement a function that returns the indices that would sort a list of integers, with ties broken by original order.

sorting indices lists
+8 pts 10m
Data Structures & Algorithms medium

Level Order Traversal

Implement a function that performs a level order traversal of a binary tree and returns node values as a list of lists.

binary-tree queue bfs
+20 pts 25m
Data Structures & Algorithms medium

Delete duplicates sorted II

Given a sorted list, remove duplicates in place so each element appears at most twice, returning the new length.

arrays two-pointers in-place
+20 pts 20m
Data Structures & Algorithms medium

Accounts Merge

Given a list of accounts, merge those that share any email and return sorted accounts.

union-find graph sorting
+28 pts 30m
Data Structures & Algorithms medium

Strobogrammatic number II

Given a positive integer n, return all strobogrammatic numbers of length n in ascending order.

strings recursion number
+25 pts 20m
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 medium

Memoize with TTL

Implement a decorator that caches function results for a limited time, returning cached values within the TTL and recomputing after expiry.

decorators memoization caching
+20 pts 20m
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

Log Calls Decorator

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

decorators logging function-wrappers
+10 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

Key error handler

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

exceptions dict fallback
+8 pts 10m
Error Handling & Exceptions easy

Else on try block

Implement a function that uses try-except-else to safely divide two numbers and return a result or error description.

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

Parse JSON safely

Implement a robust JSON string parser that returns a fallback on invalid input.

json exceptions try-except
+8 pts 10m

Showing 169–192 of 371 challenges

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.