Python Programming Challenges

292 free challenges for GCSE Computer Science students. Perfect for OCR and AQA students looking to practise Python programming, or anyone who wants to sharpen their coding skills.

๐Ÿ“ Edexcel students? Practise Paper 2 challenges here
☰ Browse by Topic
Difficulty:
EasyArithmetic
Cardboard Box Volume Challenge
Write a program that asks the user for the length, width, and height of a cardboard box in centimetres (as decimals), th
EasyArithmetic
Circle Measurements Challenge
Write a program that asks the user for the radius of a circle as a number, then calculates and displays the diameter, ar
EasyArithmetic
Height & Weight Converter
Write a program that asks the user for their height in inches and their weight in pounds (both as decimals), then conver
EasyArithmetic
Simple Age Calculator
Write a program that asks the user for their birth year as a whole number, then calculates their age by subtracting it f
EasyArithmetic
Simple Sum Calculator
Write a program that asks the user for two whole numbers (integers), adds them together, and displays the result in the
EasyArithmetic
Teddy Bear Factory Wages
Write a program that asks for the number of hours a worker has worked (as a decimal) and the number of teddy bears they
MediumArithmetic
Exponent Calculator
Write a program that asks the user for a base number (which can be a decimal) and an exponent (as a whole number), then
MediumArithmetic
Simple Interest Calculator
Write a program that asks the user for a principal amount in pounds, an annual interest rate as a percentage, and a time
HardArithmetic
Quadratic Equation Solver
Write a program that solves quadratic equations in the form axยฒ + bx + c = 0. Ask the user to enter the three coefficien
EasyRandom Numbers
Random Element Generator
Write a program that asks the user how many sides their dice has (as a whole number), then generates and displays a rand
MediumArithmetic
Exact Division Checker
Write a program that asks the user for two numbers and checks whether they are exactly divisible. If not, return the rem
HardSelection
Month Days Finder
Write a program that lets the user enter a month number (1-12) and displays the month name along with the number of days
EasyException Handling
Division Calculator
Write a program that asks the user to enter two numbers and divides the first by the second. Handle cases where the user
HardException Handling
Calculation Parser
Write a program that allows the user to enter a calculation in the format "16 + 8". The program should parse the input a
HardException Handling
Change Calculator
Write a program that calculates the correct change to be given by a vending machine using the fewest number of coins.
EasyFile Handling
File Appender
Develop a program that appends user input to an existing text file.
EasyFile Handling
File Writer
Create a program that writes user input to a text file.
EasyFile Handling
Product Catalog
Write a program that asks the user for a product code, description, and price, then saves the data in a serial file.
EasyFile Handling
Quote of the Day
Write a program that outputs a "quote of the day" stored in a text file.
MediumFile Handling
Character Counter
Implement a program that counts the number of characters in a given text file.
MediumFile Handling
Random Quote Generator
Enhance the previous program to output a random quote from a file containing multiple quotes.
HardFile Handling
Simple Quiz Game
Write a program that reads questions and answers from a text file and quizzes the user. Keep track of the score and outp
MediumFunctions & Procedures
Dart Score Keeper
Write a program that keeps track of a player's score in a darts game, subtracting each turn's score from the total.
MediumFunctions & Procedures
GCD Calculator
Implement a function that calculates the greatest common divisor (GCD) of two numbers.
MediumFunctions & Procedures
Measurement Converter
Write a program that provides a utility for converting between metric and imperial measurements. Each conversion should
HardFunctions & Procedures
Pig Dice Game
Write a program that plays the Pig Dice game, where players take turns rolling dice to accumulate points but risk losing
MediumInputs & Outputs
Age Next Year
Create a program that asks the user for their age and then prints what their age will be next year.
EasyInputs & Outputs
Digital Clock Display
Write a program that outputs the current time in a digital clock format using ASCII art.
EasyInputs & Outputs
Favourite Colour Display
Ask the user for their favourite colour and then output a sentence including that colour.
EasyInputs & Outputs
Friendly Welcome Message
Write a program that displays a friendly welcome message and today's date to the user.
EasyInputs & Outputs
Inspirational Quote Output
Write a program that outputs an inspirational quote of your choice.
EasyInputs & Outputs
Name in Art Challenge
Write a program that outputs your name in stylized ASCII Art.
EasyInputs & Outputs
Personalised Welcome
Write a program that asks the user to enter their name and then outputs a welcome message with their name in it.
MediumArithmetic
Circle Circumference Calculator
Create a program that asks for the radius of a circle and calculates and prints the circumference.
MediumInputs & Outputs
Greeting Message
Develop a program that asks the user's name and age and then greets them with a nice message
MediumArithmetic
Movie Duration in Hours
Write a program that converts a movie duration from minutes to hours and minutes.
MediumArithmetic
Price with Tax Calculator
Develop a program that calculates the total price of an item after adding a sales tax percentage.
MediumInputs & Outputs
Sum of Two Numbers
Create a program that takes two numbers as input and prints their sum and product.
EasyIteration (for loops)
Countdown Bottles Challenge
Write a program that prompts the user to enter a number of bottles, then counts down from that number to zero with a rep
EasyIteration (for loops)
Multiplication Table
Write a program that prompts the user to enter a number, and then outputs the multiplication table for that number up to
EasyIteration (for loops)
Number Squares Challenge
Write a program that outputs the squares of numbers from 1 to 20.
EasyIteration (for loops)
Sum of Natural Numbers
Write a program that calculates the sum of natural numbers up to a given limit using a for loop.
MediumIteration (for loops)
Factorial Calculator
Write a program that calculates the factorial of a given number. The factorial of a non-negative integer n, denoted by n
MediumIteration (for loops)
Print Pattern
Develop a program that prints a specific pattern using a for loop.
MediumIteration (for loops)
Print Prime Numbers
Create a program that prints all prime numbers up to a given limit using a for loop.
HardIteration (for loops)
FizzBuzz
Write a program that outputs numbers from 1 to 100. For multiples of three, output "Fizz"; for multiples of five, output
HardIteration (for loops)
Prime Number Generator
Write a program that generates and displays all prime numbers within a specified range. A prime number is a natural numb
HardIteration (for loops)
Random Math Quiz
Write a program that asks the user ten random math questions and tells them if they are correct. At the end, output how
EasyIteration (while loops)
Age Verification Challenge
Write a program that asks for your age. If you are over 18, it outputs the message โ€œOver 18โ€, otherwise it outputs โ€œUnde
EasyIteration (while loops)
Compound Interest Calculator
Write a program that calculates the growth of a savings account with compound interest until a desired balance is reache
EasyIteration (while loops)
Maximum Number Finder
Write a program to display the larger of two numbers entered by the user.
EasyIteration (while loops)
Menu Selection Challenge
Write a program that presents a simple menu to the user: 1. Play Game 2. Instructions 3. Quit. The program should keep a
EasyIteration (while loops)
Nitrate Dose Calculator
Write a program that calculates the correct dose of nitrate based on the nitrate level entered by the user.
EasyIteration (while loops)
Portfolio Score Evaluator
Write a program that inputs a mark for each section of a project and calculates the total score, grade, and how many mor
EasyIteration (while loops)
Reverse Number
Create a program that reverses a given number using a while loop.
EasyIteration (while loops)
Sum of Digits
Implement a program that calculates the sum of digits of a given number using a while loop.
EasyIteration (while loops)
Test Score Grader
Write a program that allows you to enter a test score out of 100. The program outputs โ€œFAILโ€ for a score less than 40, โ€œ
EasyIteration (while loops)
Water Temperature Indicator
Write a program that reads in the temperature of water in degrees Celsius and displays a message stating whether the wat
MediumIteration (while loops)
Bank Balance Checker
Write a program that shows the user's balance, asks how much they want to withdraw, ensures it's a valid amount, and the
MediumIteration (while loops)
Gamertag Validator
Write a program that asks the user to enter a gamertag. The program should keep asking for a valid gamertag (less than 1
MediumIteration (while loops)
Power Calculator
Develop a program that calculates the power of a number using a while loop.
MediumIteration (while loops)
Prime Number Checker
Write a program that checks if a given number is prime using a while loop.
HardIteration (while loops)
Rock Paper Scissors Game
Write a program to play a game of rock-paper-scissors. The game continues until one player reaches 10 points.
MediumLists & Arrays
Battleships Game
Create a simplified one-player Battleships game where the player tries to guess the locations of the computer's ships on
MediumLists & Arrays
Currency Converter
Write a program that stores currency names and exchange rates in a list. The program should convert an amount in British
MediumLists & Arrays
Simple Notebook
Write a program that allows the user to store up to 10 notes. The user can choose which note to overwrite by entering it
MediumOOP
Book Management System
Create a class Book with attributes title, author, and pages. Write the constructor for this class and a method isLong()
MediumOOP
Employee Salary Management
Design a class Employee with attributes name, salary, and position. Write the constructor and a method applyRaise() that
MediumOOP
Online Shopping Cart
Write a class ShoppingCart with attributes items (a list) and totalPrice. Include a method addItem() to add an item to t
MediumOOP
Prime Number Checker Class
Design a class called PrimeChecker with a method isPrime() that checks if a number is prime. Write the constructor and i
HardOOP
Object-Oriented Ticketing System
Create a class Ticket with attributes event, price, and seat. Write a method applyDiscount() that reduces the ticket pri
EasyMixed Practice
Bookstore Discount Calculator
Write a program for a bookstore that offers a 10% discount on orders over ยฃ50. Allow the user to input the total order a
EasyMixed Practice
Class Attendance Checker
Write a program that takes a list of student attendance (represented as 'P' for present and 'A' for absent) and outputs
EasyMixed Practice
Classroom Seating Plan
A teacher wants to create a seating plan for a classroom. Write a program that stores the names of 6 students in an arra
EasyMixed Practice
Grocery Store Inventory
FreshMart is a grocery store that needs a program to manage its inventory. Write a program that stores the names and pri
EasyMixed Practice
Inventory Stock Checker
Write a program to calculate the total stock of items in a 2D array where each row represents an item and the columns re
EasyMixed Practice
Library Book Loan System
A local library needs a program to track books on loan. Write a program that stores the titles of 5 books in an array. A
EasyMixed Practice
Lucky Draw
A school is running a lucky draw where students pick a random number between 1 and 50. Write a program that generates a
EasyMixed Practice
Random Workout Generator
FitLife wants to create a random workout generator. Write a program that stores 5 different exercises in an array. The p
EasyMixed Practice
Shopping Cart Total
Write a program to calculate the total cost of items in a shopping cart. The cart is represented as a list of tuples, ea
EasyMixed Practice
Student Grades Calculator
Write a program for a teacher to input 5 student names and their corresponding grades. Store these in two arrays and the
EasyMixed Practice
Theme Park Visitor Counter
FunLand theme park needs a program to count visitors. Write a program that asks the user for the number of visitors each
MediumMixed Practice
Airline Ticket Booking
Part 1: Write a program to calculate the cost of booking airline tickets based on the number of tickets and the class (E
MediumMixed Practice
Charity Donation Tracker
CodeRelief is tracking donations for their charity. Write a program that allows the user to enter the names of 10 donors
MediumMixed Practice
Charity Marathon Sponsor
Write a program for a charity marathon that tracks sponsors. The user should input the names of sponsors and the amount
MediumMixed Practice
Coffee Shop Loyalty Card
Coffee Corner offers a loyalty card where customers get a free drink after buying 10 drinks. Write a program that tracks
MediumMixed Practice
Concert Ticket Allocation
RockFest is allocating concert tickets. Write a program that stores the names of 5 ticket holders in an array. If someon
MediumMixed Practice
Delivery Time Estimator
A delivery company wants a program that estimates delivery times based on distance. The user should input the delivery d
MediumMixed Practice
Dinner Party Planner
"Gourmet Delights" catering service wants to streamline their event planning process. Write a function that takes the nu
MediumMixed Practice
Emergency Contact Information
A school needs a program to manage emergency contact information. Write a program that allows the user to input the name
MediumMixed Practice
Gym Membership Manager
Part 1: Create a program to manage gym memberships. Input the duration (in months) and membership type (Standard, Premiu
MediumMixed Practice
Hotel Room Availability Checker
Write a program that allows a hotel manager to enter the availability of 10 rooms in an array (available or booked). The
MediumMixed Practice
Movie Ticket Price Calculator
Write a program for a cinema that calculates ticket prices. The user should enter the number of adult and child tickets.
MediumMixed Practice
Personal Finance Manager
"SmartSaver" finance app wants to provide users with insights into their spending habits. Develop a program that reads t
MediumMixed Practice
Restaurant Bill Splitter
"Foodie Friends" group wants to simplify splitting the bill when dining out. Write a program that takes the total bill a
MediumMixed Practice
Restaurant Order System
Write a program that allows a waiter to take orders at a restaurant. The user should input the names of dishes ordered b
MediumMixed Practice
School Grade Tracker
"SmartEd" school needs a system to track students' grades. Develop a program that reads student grades from a text file,
MediumMixed Practice
Sports Event Scheduler
Part 1: Write a program to schedule sports events. Input the number of teams and the type of event (League, Knockout). L
MediumMixed Practice
Train Ticket Price Calculator
FastTrack is a train service. Write a program that allows the user to enter the number of stations they will travel thro
MediumMixed Practice
Travel Budget Planner
The "Wanderlust" travel agency needs a tool to help their clients plan their expenses. Create a program that takes the t
HardMixed Practice
Energy Consumption Monitor
"EcoSavvy" energy company wants to analyze customers' energy consumption patterns. Create a program that reads energy us
HardMixed Practice
Festival Budget Planner
Part 1: Write a program to plan the budget for a festival. Input the number of days, expected attendees, and the type of
HardMixed Practice
Flight Booking System
"FlyHigh" airline needs a program to manage flight bookings. Develop a system that reads flight data from a text file, a
HardMixed Practice
Inventory Management System
"SuperMart" supermarket needs an efficient way to manage their inventory. Create a program that takes the initial quanti
HardMixed Practice
Investment Portfolio Manager
"WealthBuilder" investment firm wants to track clients' investment portfolios. Create a program that reads investment da
HardMixed Practice
Online Store Order Processor
Part 1: Develop a program to process online store orders. Each order includes item price, quantity, and delivery type (S
HardMixed Practice
Tech Support Ticket System
Part 1: Write a program to manage a tech support ticket system. Each ticket has a priority (High, Medium, Low) and time
HardMixed Practice
University Course Grader
Part 1: Create a program to calculate final grades for students based on a 2D array where each row represents a student
MediumData Structures
Customer Service Queue
Simulate a customer service center where customers are served in the order they arrive. Implement a queue to manage the
MediumData Structures
Print Queue Manager
A printer processes print jobs in the order they are received. Write a program that simulates a print queue where jobs a
MediumData Structures
Task Scheduler
Write a program that simulates a simple task scheduler using a queue. Tasks are added to the queue and executed in the o
HardData Structures
Circular Queue Simulation
Implement a circular queue where the queue has a fixed size, and when it reaches the end, it wraps around to the beginni
MediumRandom Numbers
Coin Flip Simulation
Write a program that simulates flipping a coin a specified number of times. The program should ask the user to enter the
MediumRecursion
Recursive Binary Search to Iterative
Given the pseudocode for a binary search using recursion, rewrite it to perform the same task iteratively.
MediumRecursion
Recursive Factorial to Iterative
Given the following pseudocode for calculating a factorial using recursion, rewrite it to use an iterative approach.
MediumRecursion
Recursive Fibonacci to Iterative
The following pseudocode generates the nth Fibonacci number using recursion. Rewrite it using an iterative approach inst
MediumRecursion
Recursive Sum to Iterative
Convert the following recursive pseudocode that sums the numbers in an array into an iterative version.
HardRecursion
Recursive Greatest Common Divisor
The following pseudocode calculates the greatest common divisor (GCD) of two numbers using recursion. Rewrite this algor
EasySelection
Positive or Negative Number
Write a program that determines if a given number is positive, negative, or zero.
MediumSelection
Maximum Number
Write a program that finds the maximum of three numbers.
MediumSelection
Minimum Number
Implement a program that finds the minimum of three numbers.
HardSelection
Vowel Counter Part 2
Write a program that prompts the user to enter a word or phrase and counts the number of vowels (a, e, i, o, u) present
MediumData Structures
Browser Back Button
Simulate a browser's back button using a stack. As the user visits new pages, add them to the stack. The user can then "
MediumData Structures
Parentheses Balancer
Write a program that checks if a string of parentheses is balanced using a stack. The program should return true if the
MediumData Structures
Reverse a String
Write a program to reverse a string using a stack. The user should input a string, and the program should output the str
MediumData Structures
Undo Feature Simulation
A text editor uses a stack to implement the "undo" feature. Write a program that allows the user to enter text and then
HardData Structures
Stack-Based Calculator
Create a stack-based calculator that evaluates postfix expressions (e.g., "3 4 + 2 *"). The program should use a stack t
EasyString Manipulation
Book Title Length Challenge
Write a program that asks for a book title and outputs the total number of characters in it.
EasyString Manipulation
Country Shortener Challenge
Create a program where the user inputs the names of two countries. The program will output the first four letters of eac
EasyString Manipulation
Initials Formatter Challenge
Write a program that asks for a person's first name and last name, then outputs their initials in uppercase.
EasyString Manipulation
Movie Uppercase Challenge
Create a program that prompts the user for their favorite movie and displays the title in all capital letters.
EasyString Manipulation
String Reversal
Write a program that takes a string as input and prints it in reverse order.
EasyString Manipulation
Website Lowercase Challenge
Update the program to request a website URL and show it entirely in lowercase.
MediumString Manipulation
City Code Generator
Write a program that allows the user to input the names of two cities. The program should then output the first 3 charac
MediumString Manipulation
Paragraph Mid Extractor
Write a program that prints characters from position 10 to 20 of a given paragraph.
MediumString Manipulation
Product Description Extractor
Develop a program that extracts and prints the first five characters from a given product description.
MediumString Manipulation
Recipe Ingredient Finder
Create a program that finds the position of a specified ingredient in a recipe and displays its index.
MediumString Manipulation
Sentence Word Remover Challenge
Construct a program that displays the sentence "The smart student completed the project efficiently." The user can speci
MediumString Manipulation
Tweet End Extractor
Adjust the program to display the last twelve characters of a provided tweet using negative indexing.
MediumString Manipulation
Vowel Counter
Create a program that counts the number of vowels in a given string.
HardString Manipulation
Character Frequency
Create a program that calculates the frequency of each character in a given string.
HardString Manipulation
Name Splitter Challenge
Write a program that allows the user to enter their full name on one line. The program should then separate and output t
HardString Manipulation
Sentence Word Remover
Write a program that outputs a sentence and allows the user to enter a word to be removed. The sentence is then displaye
MediumInputs & Outputs
Personalised Adder
Write a program that asks the user for two numbers, adds them together, and then prints a personalised message with the
EasyLists & Arrays
Build a Shopping List
Add five items typed by the user to a list, then display the list and how many items it holds.
MediumLists & Arrays
Count Above Average
Read six numbers into a list, work out the average, and count how many are above it.
EasyLists & Arrays
Count Occurrences
Count how many times a chosen number appears in a list.
EasyLists & Arrays
Reverse the List
Read five words into a list and print them in reverse order.
MediumLists & Arrays
Add Up Until Zero
Keep reading numbers into a list until 0 is entered, then print the count and total.
Easy2D Arrays
Read One Cell
Print the value at a row and column the user chooses from a fixed 3x3 grid.
Medium2D Arrays
Sum a Chosen Column
Add up every value in a column the user chooses from a 2D table.
Easy2D Arrays
Sum a Chosen Row
Add up every value in a row the user chooses from a 2D table.
Medium2D Arrays
Biggest Number in a Grid
Find the largest value anywhere in a 2D grid.
Medium2D Arrays
Pilot Hours Lookup
Look up a pilot code in a 2D array, total their hours, and print valid or warning.
Medium2D Arrays
Class Register Count
Count how many days a chosen pupil was present in a 2D register of Y/N.
Easy2D Arrays
Car Park Bay Availability
Report whether a chosen bay in a car park grid is free or taken.
MediumString Manipulation
Palindrome Checker
Check whether a word reads the same forwards and backwards.
EasyException Handling
Safe Number Entry
Use try and except so the program does not crash when the user types letters.
MediumException Handling
Keep Asking Until Valid
Keep prompting with try and except until the user enters a valid whole number.
MediumInputs & Outputs
Rectangle Area and Perimeter
Ask for a width and height, then print the area and the perimeter.
EasyIteration (while loops)
Validate a Positive Number
Keep asking until the user enters a number greater than 0.
EasyFunctions & Procedures
Function: Return the Larger
Write a function that returns the larger of two numbers, then use it.
MediumData Structures
Stack Push and Pop
Push a value onto a stack, pop the top off, and report what was popped and the new top.
EasyInputs & Outputs
Museum Opening Hours Sign
Write a program that prints a four line opening hours sign for a museum.
EasyInputs & Outputs
Train Platform Announcement
Store three pieces of information about a train and print them all on one line.
EasyInputs & Outputs
Recycling Collection Notice
Print a bin collection notice and explain every line of the program with a comment.
EasyInputs & Outputs
Pet Adoption Profile Card
Store a rescue dog's details in variables, print its profile card, then change one variable and print again.
EasyInputs & Outputs
School Trip Information Sheet
Store three trip details that must never change as constants, then print an information sheet from them.
EasySelection
River Level Flood Check
Compare a river reading against a flood level and print the right warning.
EasySelection
Car Park Height Barrier
Use if and else so a driver always gets exactly one message at the barrier.
EasySelection
Wind Speed Band
Sort a wind speed into one of four bands using an elif chain.
EasySelection
Theme Park Ride Check
Combine three answers into one condition using and, or and not.
EasySelection
Swimming Pool Entry
Put one if inside another so the second question is only ever asked when it makes sense.
EasyIteration (for loops)
Vertical Name Banner
Loop through a name one character at a time and print each letter on its own line.
MediumString Manipulation
Text Message Splitter
Use len() to work out how many 160 character texts a message will need and how much room is left in the last one.
EasyString Manipulation
Allergy Warning Check
Use in to ask whether a word is in a string, and find() to ask where it is.
MediumFunctions & Procedures
Sports Day Scoreboard
Write the printing once as a subroutine, then call it for each house instead of repeating yourself.
EasyFunctions & Procedures
Parcel Weight Function
Write one subroutine that returns a value and one that only prints, so the difference is obvious.
EasyFunctions & Procedures
Shelf Space Scope
Read a global constant from inside a subroutine, do the working out in a local variable, and return the answer.
MediumFile Handling
Youth Club Register File
Open a file in write mode, save a numbered name on each line until the user finishes, then close it.
MediumInputs & Outputs
Hotel Guest Registration
Collect and display guest details using string inputs and concatenation.
MediumInputs & Outputs
Cinema Ticket Receipt
Calculate ticket cost using type casting and formatted output.
MediumInputs & Outputs
Pet Profile Builder
Create a pet profile using multiple input types and string formatting.
MediumInputs & Outputs
Delivery Address Formatter
Format address data into a standard postal format with type conversion.
MediumInputs & Outputs
BMI Calculator
Calculate BMI from height and weight with formatted decimal output.
MediumInputs & Outputs
Temperature Converter
Convert between Celsius and Fahrenheit using arithmetic and output formatting.
MediumInputs & Outputs
Student ID Generator
Build a student ID from multiple inputs using string operations and casting.
MediumInputs & Outputs
Recipe Scaler
Scale recipe ingredients using multiplication and formatted output.
MediumArithmetic
Warehouse Box Packer
Use integer division and modulus to calculate boxes needed and leftover items.
MediumArithmetic
VAT Price Calculator
Calculate VAT and total price using real-world percentage formula.
EasyArithmetic
Random Dice Roller
Simulate dice rolls using random.randint() and calculate totals.
MediumArithmetic
Speed Distance Time Calculator
Calculate speed, distance, or time using the SDT triangle formula.
MediumArithmetic
Carpet Area Calculator
Calculate carpet area and cost using real-world measurements and rounding.
MediumArithmetic
Time Converter
Convert seconds into hours, minutes, and seconds using integer division and modulus.
HardArithmetic
Electricity Bill Estimator
Calculate electricity costs using real-world tariff rates and order of operations.
MediumArithmetic
Random PIN Generator
Generate a random PIN using random.randint() and string concatenation.
EasySelection
Theme Park Ride Checker
Use if/else to check height requirements for a theme park ride.
MediumSelection
Cinema Age Rating Check
Use if/elif/else to determine which films a customer can watch based on age.
MediumSelection
Delivery Cost Calculator
Calculate delivery costs using nested selection based on weight and distance.
MediumSelection
Login Validator
Validate username and password using AND operator and selection.
MediumSelection
Grade Boundary Checker
Assign grades using if/elif/else with boundary conditions.
HardSelection
Triangle Type Classifier
Classify triangles using multiple conditions with AND/OR operators.
HardSelection
Parking Charge Calculator
Calculate parking charges with multiple conditions including day of week and duration.
HardSelection
Leap Year Checker
Determine leap years using nested conditions with AND/OR/NOT.
MediumSelection
Rock Paper Scissors
Compare player and computer choices using selection and random.
HardSelection
Tax Bracket Calculator
Calculate income tax using tiered brackets with multiple elif conditions.
EasyIteration (for loops)
Star Rating Display
Use a for loop with range() to print star ratings.
EasyIteration (for loops)
Times Table Generator
Generate a times table using a for loop and range().
MediumIteration (for loops)
Class Average Calculator
Use a counting loop to total scores and calculate an average.
EasyIteration (for loops)
Countdown Timer
Create a countdown using range() with a negative step.
MediumIteration (for loops)
Name Letter Counter
Iterate through a string using a for loop to count specific characters.
HardIteration (for loops)
Multiplication Grid
Use nested for loops to create a multiplication grid.
HardIteration (for loops)
Fibonacci Sequence Generator
Generate Fibonacci numbers using a for loop with running values.
MediumIteration (for loops)
Shopping Receipt Totaller
Use a for loop to collect item prices and calculate running total.
EasyIteration (while loops)
Password Validator
Use a while loop for input validation until correct password is entered.
MediumIteration (while loops)
Number Guessing Game
Implement a guessing game with while loop, random number, and feedback.
MediumIteration (while loops)
Menu-Driven Calculator
Create a menu system using a while loop that repeats until user quits.
EasyIteration (while loops)
Input Range Validator
Validate user input falls within a range using a while loop.
MediumIteration (while loops)
Shopping List Builder
Build a shopping list using a while loop with a sentinel value to stop.
MediumIteration (while loops)
Running Total Till
Use a while loop to keep a running total until a sentinel value of 0.
EasyIteration (while loops)
Dice Roll Until Six
Use a while loop with random to simulate rolling until a six appears.
HardIteration (while loops)
Quiz Retry System
Implement a quiz with retry logic, score tracking, and play-again option.
EasyString Manipulation
Username Sanitiser
Clean up a username using .strip(), .lower(), and .replace().
MediumString Manipulation
Email Domain Extractor
Extract the domain from an email using .find() and string slicing.
MediumString Manipulation
Sentence Word Counter
Split a sentence into words and analyse word properties.
HardString Manipulation
Password Strength Checker
Check password strength using character type methods and iteration.
MediumString Manipulation
Initials Generator
Extract initials from a full name using .split() and indexing.
HardString Manipulation
Caesar Cipher Encoder
Encode a message using character-by-character string processing.
MediumString Manipulation
Postcode Formatter
Validate and format UK postcodes using string methods and slicing.
MediumString Manipulation
Word Reverser
Reverse a word using string slicing or character-by-character iteration.
MediumString Manipulation
Text Censor
Replace banned words in text using .replace() and .find().
HardString Manipulation
Phone Number Validator
Validate phone numbers using .isdigit(), len(), and string slicing.
EasyLists & Arrays
Playlist Manager
Create and modify a playlist using list operations.
MediumLists & Arrays
Score Tracker
Store and analyse scores in a list - find max, min, and average.
MediumLists & Arrays
Student Name Search
Perform a linear search through a list to find a student.
MediumLists & Arrays
Lottery Number Generator
Generate unique random numbers and store them in a list.
MediumLists & Arrays
Quiz Score Register
Use parallel lists to store names and scores, then search and display.
HardLists & Arrays
Task List Manager
Complete task manager with add, remove, view, and mark-complete operations.
HardLists & Arrays
Bubble Sort
Implement bubble sort on a list of numbers, showing each pass.
MediumLists & Arrays
Duplicate Remover
Find and remove duplicate values from a list using iteration.
Easy2D Arrays
Seating Plan Display
Create and display a 2D array representing a classroom seating plan.
Medium2D Arrays
Spreadsheet Row Totals
Calculate row and column totals in a 2D array of sales figures.
Medium2D Arrays
Cinema Booking Grid
Use a 2D array to represent cinema seats with booking functionality.
Hard2D Arrays
Student Grade Table
Process a 2D array of student grades to find averages per student and subject.
Hard2D Arrays
Noughts and Crosses Board
Create a playable noughts and crosses game using a 2D array.
Medium2D Arrays
Treasure Map Search
Search a 2D array to find a hidden treasure coordinate.
EasyFunctions & Procedures
Greeting Procedure
Create a procedure that displays a greeting message using parameters.
EasyFunctions & Procedures
Area Calculator Function
Create a function that calculates area and returns the result.
MediumFunctions & Procedures
Validation Function
Create a reusable validation function with parameters for min and max.
MediumFunctions & Procedures
Discount Calculator Function
Create a function that calculates discounted prices with multiple parameters.
MediumFunctions & Procedures
Temperature Category Function
Create a function that returns a temperature category string.
HardFunctions & Procedures
Multi-Function Calculator
Build a program using multiple functions and procedures working together.
HardFunctions & Procedures
Password Generator Function
Create a function that generates passwords with configurable length.
HardFunctions & Procedures
List Statistics Function
Write functions that process a list parameter and return calculated statistics.
EasyFile Handling
Score File Writer
Write user data to a text file using the with statement.
EasyFile Handling
File Reader & Display
Read and display contents of a text file using readline() and readlines().
MediumFile Handling
CSV Data Processor
Read CSV data from a file, split by commas, and process the records.
MediumFile Handling
High Score Table
Append new scores to a file and read back the full high score table.
HardFile Handling
Stock File Updater
Read stock data from a file, update quantities, and write back.
HardFile Handling
Log File Analyser
Read and analyse a log file line by line, extracting specific data.
MediumMixed Practice
Trace Table: Loop Output
Predict loop output - a key exam skill testing understanding of iteration.
MediumMixed Practice
Find the Bug: Selection Errors
Identify and fix common selection errors - tests debugging skills for exams.
HardMixed Practice
Algorithm Design: Login System
Design a complete login system from requirements - tests decomposition and algorithm design.
HardMixed Practice
Algorithm Design: Text Encryptor
Design a simple encryption algorithm combining string manipulation, iteration, and functions.
HardMixed Practice
Data Processing: Student Records
Full data processing challenge combining files, lists, functions, and analysis.
HardMixed Practice
Trace Table: Nested Loops
Trace through nested loop code - advanced exam technique for Paper 2.
HardMixed Practice
Algorithm: Finding Duplicates
Design an algorithm to find duplicates in a list - tests algorithmic thinking.
HardMixed Practice
Complete Program: Contact Book
Full program design combining all major topics - the ultimate exam preparation challenge.
HardProgramming Project
Movie Quiz Game
Build a complete movie quiz game with authentication, scoring, and leaderboards
HardProgramming Project
Card Battle Game
Build a two-player card battle game with special rules, scoring, and leaderboards
HardProgramming Project
Rock Paper Scissors Tournament
Build a two-player rock-paper-scissors tournament with authentication, match history, and sudden death
HardProgramming Project
Vet Practice Records System
Build a patient records system for a vet practice with search, reports, and file storage
HardProgramming Project
Escape Room Puzzle
Build a text-based escape room with 5 rooms, an inventory system, timer, hints, and save/load
HardProgramming Project
Stock Trading Simulator
Build a stock market simulator with portfolio tracking, price history, and end-of-game reports
HardProgramming Project
School Event Booking System
Build a booking system for school events with capacity tracking, waiting lists, and admin reports
HardProgramming Project
Recipe Manager & Meal Planner
Build a recipe manager with meal planning, ingredient scaling, shopping list generation, and file storage
EasyTurtle Graphics
Draw a Square
Use turtle graphics to draw a square with sides of 100 pixels.
EasyTurtle Graphics
Draw an Equilateral Triangle
Use turtle graphics to draw an equilateral triangle with sides of 150 pixels.
EasyTurtle Graphics
Colourful Shape Collection
Draw three shapes in different colours - a red square, a blue triangle, and a green circle.
MediumTurtle Graphics
Draw a Five-Pointed Star
Use turtle graphics to draw a five-pointed star with yellow fill.
MediumTurtle Graphics
Growing Spiral Pattern
Draw a colourful square spiral where each side gets longer as it goes.
MediumTurtle Graphics
Hexagon Flower Pattern
Draw a flower pattern by rotating a hexagon around a central point.
HardTurtle Graphics
Draw a House with Garden
Draw a house with a triangular roof, a door, a window, and a simple garden with flowers.
HardTurtle Graphics
Olympic Rings
Draw the five Olympic rings in their correct colours and overlapping positions.
HardTurtle Graphics
Dartboard Target
Draw a dartboard with concentric coloured rings, a bullseye, and scoring labels.
EasyTurtle Graphics
Draw a Rectangle
Draw a rectangle 150 wide and 80 tall using forward and right, with no loop.
EasyTurtle Graphics
Zigzag Path
Draw a zigzag of six lines by turning left and right alternately.
EasyTurtle Graphics
Draw a Pentagon
Draw a regular pentagon with a loop, working the turn out from 360 divided by the number of sides.
EasyTurtle Graphics
Dashed Road Marking
Draw a dashed line by lifting and lowering the pen inside a loop.
EasyTurtle Graphics
Fill a Flag
Draw a flag on a pole with the flag filled in a solid colour.
EasyTurtle Graphics
A Square in Each Corner
Place a small square at four given coordinates using setposition.
EasyTurtle Graphics
Nested Squares Target
Draw three squares inside one another, all sharing the same centre.