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
Python Basics easy

Leap Year Checker

Implement a function that decides whether a year is a leap year according to the standard Gregorian rules.

boolean conditionals date
+5 pts 5m
Python Basics easy

Validate date format

Return True if input string is exactly YYYY-MM-DD and a real calendar date.

validation strings dates
+10 pts 10m
Python Basics easy

Validate Password Strength

Implement a function that validates password strength based on clear rules.

strings validation conditions
+10 pts 15m
Strings & Text easy

Validate time format

Check whether a given string is a valid 24-hour time in HH:MM format.

strings validation time
+10 pts 15m
Strings & Text easy

Validate username format

Implement a function that validates a username according to length, allowed characters, and no consecutive underscores.

strings validation returns
+8 pts 12m
Dicts & Sets easy

Revenue by Month

Write a function that groups a list of (date, amount) pairs by year-month and returns total revenue per month as a sorted dictionary.

dict aggregation sales
+8 pts 10m
Data Structures & Algorithms easy

Delete Old Records

Filter a list of records by removing those with a date older than a given cutoff date.

filtering datetime lists
+8 pts 10m
Advanced Python hard

Validated descriptor

Implement a TypedField descriptor that raises TypeError if the value is not of the expected type.

descriptors OOP metaclass
+40 pts 35m
Decorators & Context Managers easy

Class-based decorator with call validation

Build a class-based decorator that validates a single argument's type and logs successful invocation.

decorators class validation
+8 pts 15m
Regular Expressions medium

Validate Email Regex

Implement a function that validates email addresses using regex with specific rules.

regex email validation
+20 pts 25m
Regular Expressions easy

Validate phone number

Write a function that uses regular expressions to determine if a given string is a valid US phone number.

regex validation phone
+10 pts 15m
Regular Expressions hard

Match IPv6 Address

Write a function that uses a regex to validate whether a string is a fully expanded IPv6 address.

regex validation ipv6
+25 pts 30m
Regular Expressions medium

Match Credit Card Pattern

Write a function that validates a credit card number string against a set of formatting rules.

regex validation credit-card
+25 pts 25m
Regular Expressions easy

Validate Hex Color Code

Write a function that validates hex color codes using regular expressions.

regex validation strings
+10 pts 10m
Math & Number Theory medium

Zeller Congruence Weekday

Implement a function that returns the weekday name for a given date using Zeller's congruence.

math modular-arithmetic date
+20 pts 20m
Trees & Binary Trees medium

Validate BST

Implement a function to determine if a binary tree is a valid Binary Search Tree.

bst recursion validation
+25 pts 25m
Stacks & Queues medium

Validate Stack Sequences

Given two sequences of distinct integers, verify whether the second sequence is a valid pop order for a stack given the first sequence as push order.

stack simulation sequences
+20 pts 20m
Datetime & Time Calculations easy

Days in month

Write a function that returns the number of days in a given month and year, correctly handling leap years.

datetime calendar leap-year
+8 pts 10m
Datetime & Time Calculations easy

Format date output

Parse ISO date strings and format them into a friendly US-style date output.

datetime string-formatting date-parsing
+8 pts 10m
Datetime & Time Calculations easy

Days Between Dates

Write a function that returns the number of days between two given dates.

datetime date-arithmetic calendar
+10 pts 15m
Datetime & Time Calculations easy

Add Days to Date

Given a date in YYYY-MM-DD format and an integer number of days, return the resulting date in the same format.

datetime date arithmetic
+8 pts 10m
Datetime & Time Calculations easy

Weekday from date

Write a function that returns the full English weekday name for a date string.

datetime date weekday
+10 pts 10m
Datetime & Time Calculations easy

Leap Years in Range

Write a function that returns a list of all leap years between two given years, inclusive.

leap-year range datetime
+7 pts 10m
Datetime & Time Calculations easy

Age in years months days

Given birth and reference dates, return age as a dictionary with years, months, days.

datetime date arithmetic age calculation
+10 pts 15m

Showing 1–24 of 42 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.