Parse URL components
Write parse_url that splits a URL into its standard components with defaults for missing parts.
Parse HTTP Status Line
Write a function that parses a well-formed HTTP status line into its three components.
Parse markdown headers
Write a function that parses markdown headers and returns their levels and texts.
Parse bullet list
Parse a markdown-style bullet list and return the list of item texts, stripping bullet markers and trimming surrounding whitespace.
Parse numbered list
Take a string containing a numbered list and return a clean list of the item texts.
Parse Version SemVer
Write a function that parses a semantic version string into its numeric components.
Compare Version Strings
Given two version strings, compare them numerically by splitting on dots and ignoring leading zeros.
Parse path segments
Implement a function that parses a path string into clean segments, ignoring slashes, empty parts, and dot segments.
Parse coordinate pairs
Parse a string of coordinate pairs into a list of coordinate lists.
Parse range notation
Parse a comma-separated list of ranges and individual numbers, expanding each range into its full sequence.
Parse Boolean Strings
Implement a function that parses a boolean string into a Python bool, handling True/False/Yes/No/1/0 case-insensitively.
Find repeated words
Return a lowercase list of unique words that appear more than once across a given text, ignoring case.
Crawler Log Folder
Given a list of folder navigation operations, compute the minimum steps required to return to the main folder.
Parse Hex Dump
Write a function that parses a hex dump string into a list of integers.
Nested get with dotted path
Implement a function that safely retrieves a value from a deeply nested dictionary using a dot-separated path, returning a default if any key is missing.
Safe Integer from String
Implement safe_int that converts a string to an integer, returning a default value on any failure, with support for an optional base.
Safe int parser
Implement safe_parse_int that converts a string to an int, returning a default value on failure.
Safe Float Parser
Write a function that safely converts a string to a float, returning None for invalid inputs.
Parse Error Recovery
Parse a whitespace-separated string into a list of valid integers, skipping invalid tokens.
Non-greedy quantifier
Implement a function that uses a non-greedy regex to extract the shortest substring between two delimiters.
Named group extraction
Parse a log line into structured fields using named groups and re.match.
Balanced brackets in string
Check if a string of brackets is properly balanced using a stack-based approach.
Format date output
Parse ISO date strings and format them into a friendly US-style date output.
Datetime to Unix timestamp
Parse a datetime string and convert it to a Unix timestamp assuming UTC.
Showing 25–48 of 58 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
- Pick a category — basics, algorithms, strings, and more
- Open a challenge, read the statement, and edit the starter code
- 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.