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
Linked Lists easy

Remove the head node

Return a new list without the first node.

linked-list lists pointers
+10 pts 12m
Datetime & Time Calculations easy

Age in years months days

Given birth and reference dates, return age as a dictionary with years, months, days.

datetime date arithmetic age calculation
+10 pts 15m
Datetime & Time Calculations easy

Week Number ISO

Given a date, return its ISO 8601 week number (1–53) without using datetime.isocalendar().

datetime iso date
+8 pts 12m
Datetime & Time Calculations easy

Time Slot Generator

Generate a list of time slots of a specified duration within a start and end time.

datetime time scheduling
+8 pts 12m
Data Formats & Parsing easy

Generate CSV row

Implement a function that converts a list of values into a single CSV row with correct quoting and escaping.

csv escaping strings
+8 pts 12m
Data Formats & Parsing easy

Parse YAML-like dict

Parse a simple YAML-like text with indentation into a nested dictionary.

parsing yaml dictionary
+10 pts 15m
Data Formats & Parsing easy

Encode Base64 String

Write a function that encodes a UTF-8 string into a base64 string without using the base64 module.

base64 encoding strings
+8 pts 15m
Data Formats & Parsing easy

Parse Apache log line

Write a function that parses a single Apache access log line into a dictionary with IP, timestamp, request, status, and size.

parsing strings regex
+8 pts 10m
SQL & SQLite easy

Create Table Schema

Write a function that creates a SQLite table with a given name and columns, and returns the resulting schema as a list of column definitions.

sqlite schema table
+8 pts 10m
SQL & SQLite easy

Customers Never Order

Given Customers and Orders tables, return the names of customers with no orders, sorted alphabetically, or None if all have ordered.

sql sqlite join
+10 pts 15m
SQL & SQLite easy

Add column alter

Write a function that connects to an in-memory SQLite database, creates a table, inserts rows, and adds a new column with ALTER TABLE.

sqlite alter-table ddl
+10 pts 15m
Cryptography & Hashing easy

Constant Time Compare

Write a function that compares two strings without leaking length or content via timing.

constant-time security comparison
+10 pts 15m
Cryptography & Hashing easy

Password Salt Hash

Implement a function that returns a secure salted SHA-256 password hash with a deterministic format.

hashlib sha256 security
+8 pts 12m
Cryptography & Hashing easy

XOR Cipher Encode

Implement the XOR cipher: encode a string by XORing each character with a key character.

xor encryption strings
+10 pts 10m

Showing 97–110 of 110 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.