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
Datetime & Time Calculations easy

Duration Human Readable

Write a function that turns a number of seconds into a human-readable duration like '2 hours, 1 minute'.

datetime strings formatting
+10 pts 15m
Datetime & Time Calculations easy

Schedule conflict check

Write a function that takes a list of time intervals and returns True if any two overlap.

datetime intervals overlap
+10 pts 15m
Datetime & Time Calculations medium

Julian Day Number Converter

Implement two functions to convert between Gregorian calendar dates and Julian Day Numbers using a standard formula.

datetime date-arithmetic algorithms
+20 pts 20m
Datetime & Time Calculations easy

Month End Date

Implement a function that returns the last day of the month for a given year and month.

datetime calendar leap-year
+10 pts 15m
Datetime & Time Calculations medium

Easter Date Calculator

Implement a function that returns the date of Easter Sunday for a given year using the Gregorian computus algorithm.

datetime date easter
+20 pts 25m
Data Formats & Parsing medium

Base64 Encode/Decode

Implement two functions to encode and decode Base64 strings using the standard alphabet and padding.

base64 encoding string
+20 pts 20m
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 medium

Flatten nested JSON

Write a function that flattens nested JSON objects into a flat dictionary with dot-separated keys, handling lists and empty objects.

json recursion dictionaries
+20 pts 25m
Data Formats & Parsing easy

Parse email header

Write a function that parses a raw email header string and returns sender, recipient, and subject.

parsing strings email
+10 pts 12m
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 medium

Base64 Encode Decode

Implement Base64 encoding and decoding functions that handle padding and all standard characters.

base64 encoding decoding
+20 pts 30m
Data Formats & Parsing easy

Parse CSV Row

Implement a robust function that parses a single CSV line into a list of fields, handling double quotes and escaped quotes.

csv parsing strings
+10 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
Data Formats & Parsing easy

Parse table rows

Implement a function that converts a simple text table into a list of dictionaries.

parsing strings csv
+10 pts 15m
SQL & SQLite easy

Inner Join Two Tables

Write a function that inner joins two lists of dictionaries on a common key and returns the combined rows.

sql join dictionaries
+8 pts 12m
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 medium

Nth Highest Salary

Write a Python function using SQLite to return the Nth highest distinct salary from an employee table.

sql sqlite aggregation
+20 pts 20m
SQL & SQLite easy

Cumulative Sum SQL

Write a SQL query to compute cumulative sales totals per product ordered by sale date.

sql window-functions running-total
+8 pts 12m
SQL & SQLite easy

Select All Users

Write a function that connects to an in-memory SQLite database and returns all users as a list of lists.

sqlite sql query
+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

SHA256 Hash String

Write a function that returns the SHA256 hexadecimal digest of a given string.

hashing sha256 hashlib
+5 pts 5m
Cryptography & Hashing easy

Compute SHA-1 Hash String

Write a function that returns the SHA-1 hash of a string as a 40-character hex string.

sha1 hashlib hashing
+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

Verify HMAC signature

Implement a function that verifies an HMAC-SHA256 signature for a message and key.

hmac hashlib security
+10 pts 15m

Showing 337–360 of 365 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.