FizzBuzz, precisely
Return a newline-separated string for 1..n: Fizz, Buzz, FizzBuzz, or the number.
Hello, name!
Implement a function that returns a personalized greeting for a given name.
Minutes to Hours: Time Conversion Helper
Write a function that converts minutes into a human-readable 'Xh Ym' string, with special cases for zero and whole hours.
Countdown printer
Implement a function that prints a countdown from a given number down to 1, then returns 'Go!'.
Print Pyramid Pattern
Implement a function that returns a centered asterisk pyramid as a list of strings.
Count word occurrences
Write a function that takes a sentence and returns a dictionary of word counts.
Pathlib Operations: File Path Basics
Practice using pathlib to manipulate file paths and extract components.
Validate date format
Return True if input string is exactly YYYY-MM-DD and a real calendar date.
Palindromic Number Check
Write a function to check if a given integer is a palindrome.
Longest Substring with K Repeating Characters
Return the length of the longest substring of a given string in which every character appears at least K times.
Parse environment variables
Write parse_env_vars that parses KEY=VALUE lines into a dict, converting booleans/numbers and ignoring comments.
Rank Employees by Salary
Sort a list of employee dictionaries by salary descending, tie-break by name, and return ranked strings.
Logging Filter
Given a list of log entries, return those matching a given severity level and containing a keyword.
Order by Name
Implement a function that sorts a list of names alphabetically ignoring case, returning a new list.
Validate Password Strength
Implement a function that validates password strength based on clear rules.
Reverse a string
Return the characters of the string in reverse order.
Palindrome check
Return True if the string reads the same forwards and backwards (ignoring case and non-alphanumeric).
Count vowels
Count the number of vowels (a, e, i, o, u) in a string (case-insensitive).
Title case converter
Return the string with each word capitalised.
Anagram check
Return True if two strings are anagrams of each other.
Run-length encoding
Compress consecutive identical characters, e.g. 'aaabbc' → 'a3b2c1'.
Longest common prefix
Find the longest common prefix among a list of strings.
Integer to Roman
Convert a positive integer to its Roman numeral representation.
Zigzag string conversion
Encode a string in zigzag order across numRows rows, then read row by row.
Showing 1–24 of 162 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.