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
OOP & Classes easy

Event emitter basics

Implement an EventEmitter class with subscribe/emit/unsubscribe functionality.

oop callbacks events
+10 pts 15m
OOP & Classes medium

Design Twitter Feed

Implement a Twitter class with postTweet, getNewsFeed, follow, and unfollow methods.

classes sorting timeline
+25 pts 30m
OOP & Classes easy

Observer pattern lite

Implement a simple Subject class supporting subscribe, unsubscribe, and notify observers.

observer design-pattern classes
+8 pts 10m
OOP & Classes easy

Playing card class

Design a PlayingCard class with suit, rank, color, and equality/comparison magic methods.

oop classes magic-methods
+10 pts 15m
OOP & Classes medium

Seat Manager Design

Implement a SeatManager class that supports reserving the smallest available seat and unreserving seats.

heap class-design simulation
+25 pts 25m
Data Structures & Algorithms medium

Design Front Middle Back Queue

Implement a data structure that supports push/pop at front, middle, and back of a queue.

queue deque data-structures
+25 pts 30m
Data Structures & Algorithms medium

Design Browser History

Implement a BrowserHistory class that supports visit, back, and forward navigation with step counts.

browser-history stack design
+25 pts 20m
Data Structures & Algorithms medium

Design Skip List Lite

Implement a simplified skip list supporting insert, search, and delete with O(log n) average complexity.

skip-list linked-list search
+30 pts 30m
Stacks & Queues easy

Max Stack Design

Implement a MaxStack class with push, pop, top, and get_max operations.

stack design max
+10 pts 15m

Showing 1–9 of 9 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.