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.
Evaluate Reverse Polish Notation
Evaluate an arithmetic expression written in reverse Polish notation using a stack.
Decode String Stack
Decode a compressed string with repeated substrings like '3[a2[c]]' to 'accaccacc' using a stack-based approach.
Score of Parentheses
Given a balanced parentheses string, compute its score where () is 1 and concatenation sums, nesting multiplies by 2.
Decode Nested String
Implement a function that decodes a string with nested encoding patterns.
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.
Quarter from date
Compute the quarter (1-4) for a date string like '2023-07-15'.
Month Start Date
Parse a date string and return the first day of its month in the same format.
Extract JSON-like numbers
Parse a simplified JSON-like string without using the json module and sum all numbers found in it.
Base64 Encode/Decode
Implement two functions to encode and decode Base64 strings using the standard alphabet and padding.
Protocol definition
Parse a simple wire protocol string into a structured dictionary.
Config Parser Reader
Parse a simple INI-style configuration text into a nested dictionary.
Parse YAML-like dict
Parse a simple YAML-like text with indentation into a nested dictionary.
Flatten nested JSON
Write a function that flattens nested JSON objects into a flat dictionary with dot-separated keys, handling lists and empty objects.
Unflatten JSON dict
Given a flat dictionary with keys like 'a.b.c', reconstruct the nested dictionary where each dotted segment becomes a nested level.
Parse email header
Write a function that parses a raw email header string and returns sender, recipient, and subject.
Update Row by ID
Given a list of CSV rows and target ID, replace the first matching row's value.
Parse CSV Row
Implement a robust function that parses a single CSV line into a list of fields, handling double quotes and escaped quotes.
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.
Showing 49–72 of 73 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
- 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.