the ultimate list manager
Python list manipulation, file I/O, user interaction, data management.
Imagine you are the chief organiser for a big event - maybe a school play, a sports tournament, or a fantastic party! You need a way to keep track of all the attendees, teams, or cast members. Sometimes you want to see everyone's name in the order they signed up, other times you might need them in reverse order, or perhaps even save your list for later and load it back up again. This challenge will equip you with the skills to build a brilliant list manager!
Required Prior Learning
Understanding how to get information from a user (
input()) and display it (print()).Knowing about variables and different types of data, like text (strings) and whole numbers (integers).
How to make decisions in your code using
if, elif, and else statements.Using loops (
for and while) to repeat actions.Basic knowledge of what a list is and how to add items to it.
Use
Investigate & PredictHave a look at the Python code snippet below. It creates a simple list and demonstrates how you can add items, and then display the list in a couple of different ways. Run the code and see what happens!
Prediction Questions
1
What do you think the
shopping_list.append("cheese") line does, and where will "cheese" appear in the list when printed in the original order?2
If you change the line
reversed_list = list(reversed(shopping_list)) to shopping_list.reverse() and then print shopping_list, what will happen to the original order of the shopping_list?3
What would you need to change in the
if "bread" in shopping_list: statement to check if "yogurt" is on the list instead?Modify
Tweak & ExperimentTake the starter code in the widget above and experiment with the following changes:
1
Add two more ingredients to the
shopping_list before the "cheese" item. How does this affect the output?2
Instead of using
list(reversed(shopping_list)), try printing the list in reverse by using a different method: print(shopping_list[::-1]). What's the difference in how the list is reversed?3
Modify the code to ask the user for an item to check if it's on the list, instead of always checking for "bread". Use the
input() function to get their choice.Create
The Core ChallengeNow it's time to build your very own "Ultimate List Manager"! Remember our event scenario from earlier? Your program should allow a user to manage their guest list, team roster, or cast of characters.
Success Criteria
The program should allow the user to continuously add new names to a list until they choose to stop.
All entered names must be stored in a Python list.
The program must ask the user if they want to display the list in its original order or in reverse order.
The list should be displayed exactly according to the user's choice.
Extension: Implement a feature to save the current list of names to a text file and load a previously saved list back into the program.
Test Your Code
Run your code and check it against the expected behaviour below:
User Action
Expected Output
Purpose of Test
Run the program. Add "Alice", "Bob", "Charlie", then choose to stop adding names.
The list should contain ["Alice", "Bob", "Charlie"].
Verifies correct list creation and adding multiple items.
When prompted, choose to print the list in the original order.
The program should display:
Alice
Bob
Charlie
Alice
Bob
Charlie
Checks if the list prints in the correct, original sequence.
Run the program again (or use the load feature if implemented). Add "Zara", "Yara", then choose to stop. When prompted, choose to print in reverse order.
The program should display:
Yara
Zara
Yara
Zara
Ensures the reverse order printing functionality works as expected.
(If Extension implemented) Add "Fred", "George". Save the list to "guests.txt". Then load "guests.txt".
The program should confirm saving, then after loading, the list should contain ["Fred", "George"].
Confirms that saving and loading lists to/from a file is working correctly.
Don't forget to print your code and output to a PDF file and send it to your teacher.
Last modified: October 22nd, 2026
