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 easy

Hamming Distance

Implement a function that computes the Hamming distance between two strings of equal length.

strings character-comparison distance
+10 pts 15m
Strings & Text easy

Hex encode decode

Write hex_encode and hex_decode to convert between hex strings and integer byte values.

hex encoding strings
+8 pts 12m
Strings & Text easy

ROT13 Transform

Implement ROT13, a letter substitution cipher that rotates the alphabet by 13 positions.

strings cipher transformation
+10 pts 15m
Strings & Text easy

Caesar Cipher Decrypt

Implement a function that decrypts a Caesar cipher by shifting letters back by a given number.

strings ascii cipher
+10 pts 15m
Strings & Text easy

Remove Duplicate Letters

Implement a function that removes duplicate characters from a string while preserving the order of their first occurrence.

strings deduplication order-preserving
+10 pts 15m
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 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

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

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

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
Dicts & Sets easy

First non-repeating character

Find the index of the first character that appears only once.

dict strings counter
1
+12 pts 12m
Dicts & Sets easy

Group names by first letter

Given a list of names, return a dictionary mapping each first letter to all names starting with that letter in original order.

dictionaries strings grouping
+10 pts 10m
Dicts & Sets easy

Keys Sorted by Value Descending

Given a dictionary mapping strings to integers, return a list of keys sorted by value descending, and when values tie, alphabetically ascending.

sorting dictionaries ordering
+8 pts 10m
Dicts & Sets easy

Anagram Dictionary Groups Lite

Group a list of words into anagrams using a dictionary keyed by sorted characters.

dicts strings anagrams
+10 pts 15m
Dicts & Sets easy

Anagram Groups by Size

Group a list of words into anagram groups and return them sorted by group size and lexicographically.

dicts sets sorting
+10 pts 10m

Showing 73–96 of 119 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.