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
Strings & Text medium

Custom Sort String

Given a string s and an order string, reorder s so that characters that appear in order come first in that order, and all other characters are appended in stable original order.

sorting strings custom-order
+15 pts 20m
Strings & Text medium

Change directory manager

Implement a function that processes `cd` commands and returns the resulting absolute path.

string parsing paths
+20 pts 20m
Strings & Text easy

Parse URL components

Write parse_url that splits a URL into its standard components with defaults for missing parts.

url-parsing strings parsing
+8 pts 10m
Strings & Text easy

Parse HTTP Status Line

Write a function that parses a well-formed HTTP status line into its three components.

strings parsing http
+8 pts 15m
Strings & Text medium

Parse key-value lines

Parse structured key-value lines into a dictionary with support for quoted values and escaped characters.

parsing strings dictionary
+20 pts 20m
Strings & Text easy

Parse markdown headers

Write a function that parses markdown headers and returns their levels and texts.

markdown parsing strings
+10 pts 15m
Strings & Text easy

Parse bullet list

Parse a markdown-style bullet list and return the list of item texts, stripping bullet markers and trimming surrounding whitespace.

parsing strings markdown
+8 pts 10m
Strings & Text easy

Parse numbered list

Take a string containing a numbered list and return a clean list of the item texts.

string parsing strip split
+8 pts 12m
Strings & Text easy

Decode base64 string

Write a function that decodes a base64 string to its original UTF-8 text without using the base64 module.

base64 decode strings
+8 pts 10m
Strings & Text easy

Parse Version SemVer

Write a function that parses a semantic version string into its numeric components.

strings parsing semver
+10 pts 15m
Strings & Text easy

Compare Version Strings

Given two version strings, compare them numerically by splitting on dots and ignoring leading zeros.

strings parsing comparison
+10 pts 15m
Strings & Text easy

Parse path segments

Implement a function that parses a path string into clean segments, ignoring slashes, empty parts, and dot segments.

strings parsing split
+10 pts 10m
Strings & Text easy

Parse coordinate pairs

Parse a string of coordinate pairs into a list of coordinate lists.

parsing strings split
+8 pts 12m
Strings & Text easy

Parse range notation

Parse a comma-separated list of ranges and individual numbers, expanding each range into its full sequence.

strings parsing ranges
+8 pts 12m
Strings & Text easy

Parse Boolean Strings

Implement a function that parses a boolean string into a Python bool, handling True/False/Yes/No/1/0 case-insensitively.

strings boolean parsing
+10 pts 10m
Strings & Text easy

User Friendly Message

Given a raw user input, format it into a single clean sentence with proper sentence case and trimming.

strings formatting cleaning
+8 pts 12m
Strings & Text easy

Find repeated words

Return a lowercase list of unique words that appear more than once across a given text, ignoring case.

string parsing word-count
+8 pts 12m
Strings & Text easy

ROT13 transform

Implement the ROT13 cipher on a string, preserving case and leaving non-letters unchanged.

string ascii cipher
+10 pts 10m
Strings & Text medium

Additive number sequence

Check whether a given digit string can be partitioned into a valid additive sequence where each term is the sum of the previous two.

strings parsing fibonacci
+30 pts 25m
Strings & Text easy

Crawler Log Folder

Given a list of folder navigation operations, compute the minimum steps required to return to the main folder.

strings stack simulation
+10 pts 15m
Strings & Text easy

Parse Hex Dump

Write a function that parses a hex dump string into a list of integers.

hex parsing bytes
+8 pts 12m
Strings & Text easy

Caesar Cipher Decrypt

Write a function that decrypts a Caesar cipher by shifting letters backward by a given key.

strings cipher ascii
+10 pts 15m
Lists & Arrays easy

Two Sum

Return indices (i, j) with i < j such that nums[i] + nums[j] == target.

dict complement
+18 pts 16m
Lists & Arrays medium

Maximum subarray (Kadane)

Find the contiguous subarray with the largest sum.

dp arrays kadane
+25 pts 20m

Showing 193–216 of 925 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.