Introduction
In this tutorial, you'll learn how to create a simple smartphone comparison tool using Python. This tool will help you evaluate different phone models based on key specifications like price, camera quality, and battery life. We'll build a practical application that demonstrates how to work with data structures and basic Python programming concepts to make informed technology purchasing decisions.
Prerequisites
To follow this tutorial, you'll need:
- A computer with Python installed (version 3.6 or higher)
- A text editor or IDE (like VS Code, PyCharm, or even Notepad)
- Basic understanding of what smartphones are and how they differ
Step-by-Step Instructions
Step 1: Setting Up Your Python Environment
Creating Your Project Folder
First, create a new folder on your computer called phone_comparison. This will be your project directory where you'll store all your files.
Opening Your Code Editor
Open your text editor or IDE and create a new file named phone_comparison.py in your project folder. This file will contain all our Python code.
Step 2: Creating Your Phone Data Structure
Defining Phone Information
We'll start by creating a simple data structure to store information about different smartphones. This will be a list of dictionaries, where each dictionary represents one phone model.
# Define phone data as a list of dictionaries
phones = [
{
"name": "Google Pixel 10 Pro",
"price": 899,
"camera": 50,
"battery": 5000,
"storage": 128,
"os": "Android"
},
{
"name": "Samsung Galaxy S26",
"price": 999,
"camera": 48,
"battery": 4500,
"storage": 256,
"os": "Android"
},
{
"name": "iPhone 15 Pro",
"price": 999,
"camera": 48,
"battery": 3274,
"storage": 128,
"os": "iOS"
}
]
Why we do this: Using dictionaries allows us to organize related information about each phone in a clear, structured way. Each phone has multiple attributes (name, price, camera quality, etc.), and dictionaries make it easy to access and manage this information.
Step 3: Displaying Phone Information
Creating a Simple Display Function
Now we'll create a function that can display phone information in a readable format:
def display_phone(phone):
print(f"\nPhone: {phone['name']}")
print(f"Price: ${phone['price']}")
print(f"Camera: {phone['camera']} MP")
print(f"Battery: {phone['battery']} mAh")
print(f"Storage: {phone['storage']} GB")
print(f"OS: {phone['os']}")
print("-" * 30)
Displaying All Phones
Let's create a function that displays all phones in our collection:
def display_all_phones(phones_list):
print("\nSmartphone Comparison Tool\n")
for phone in phones_list:
display_phone(phone)
Why we do this: This step shows how to loop through data and display it in a user-friendly way. The function structure makes our code reusable and easier to maintain.
Step 4: Adding Price Filtering
Creating a Filter Function
Let's add a feature that lets users see only phones within their budget:
def filter_by_price(phones_list, max_price):
affordable_phones = []
for phone in phones_list:
if phone['price'] <= max_price:
affordable_phones.append(phone)
return affordable_phones
Using the Filter
Now let's add code to use this filter and display results:
# Example usage
max_budget = 900
affordable_phones = filter_by_price(phones, max_budget)
print(f"\nPhones under ${max_budget}:")
for phone in affordable_phones:
print(f"- {phone['name']}: ${phone['price']}")
Why we do this: Filtering helps users focus on phones that fit their budget. This demonstrates how to work with conditions and create new lists based on criteria.
Step 5: Finding Phones by Camera Quality
Creating a Camera Quality Filter
Let's add another way to filter phones based on camera quality:
def filter_by_camera(phones_list, min_camera):
good_camera_phones = []
for phone in phones_list:
if phone['camera'] >= min_camera:
good_camera_phones.append(phone)
return good_camera_phones
Using the Camera Filter
# Find phones with at least 48MP cameras
high_quality_phones = filter_by_camera(phones, 48)
print("\nPhones with 48MP or better cameras:")
for phone in high_quality_phones:
print(f"- {phone['name']}: {phone['camera']} MP")
Why we do this: This shows how to filter data based on different criteria. In real shopping, camera quality is often a major factor in phone selection.
Step 6: Creating a Complete Comparison Program
Putting It All Together
Now let's create a complete program that combines all our features:
# Complete program
phones = [
{
"name": "Google Pixel 10 Pro",
"price": 899,
"camera": 50,
"battery": 5000,
"storage": 128,
"os": "Android"
},
{
"name": "Samsung Galaxy S26",
"price": 999,
"camera": 48,
"battery": 4500,
"storage": 256,
"os": "Android"
},
{
"name": "iPhone 15 Pro",
"price": 999,
"camera": 48,
"battery": 3274,
"storage": 128,
"os": "iOS"
}
]
def display_phone(phone):
print(f"\nPhone: {phone['name']}")
print(f"Price: ${phone['price']}")
print(f"Camera: {phone['camera']} MP")
print(f"Battery: {phone['battery']} mAh")
print(f"Storage: {phone['storage']} GB")
print(f"OS: {phone['os']}")
print("-" * 30)
def display_all_phones(phones_list):
print("\nSmartphone Comparison Tool\n")
for phone in phones_list:
display_phone(phone)
def filter_by_price(phones_list, max_price):
affordable_phones = []
for phone in phones_list:
if phone['price'] <= max_price:
affordable_phones.append(phone)
return affordable_phones
def filter_by_camera(phones_list, min_camera):
good_camera_phones = []
for phone in phones_list:
if phone['camera'] >= min_camera:
good_camera_phones.append(phone)
return good_camera_phones
# Run the program
print("Welcome to the Smartphone Comparison Tool!")
print("Here are all the phones we're comparing:")
display_all_phones(phones)
# Filter by budget
max_budget = 950
affordable_phones = filter_by_price(phones, max_budget)
print(f"\nPhones under ${max_budget}:")
for phone in affordable_phones:
print(f"- {phone['name']}: ${phone['price']}")
# Filter by camera quality
high_quality_phones = filter_by_camera(phones, 48)
print("\nPhones with 48MP or better cameras:")
for phone in high_quality_phones:
print(f"- {phone['name']}: {phone['camera']} MP")
Step 7: Running Your Program
Executing Your Code
Save your file and run it from your command line or terminal:
python phone_comparison.py
You should see output showing all phones, then filtered results based on price and camera quality.
Why we do this: Running the program demonstrates how all the components work together. It shows the practical application of data filtering and display functions.
Summary
In this tutorial, you've learned how to create a basic smartphone comparison tool using Python. You've worked with:
- Data structures (lists and dictionaries) to organize phone information
- Functions to display and filter data
- Basic programming concepts like loops and conditions
- How to create reusable code that can help with real-world decision-making
This simple program demonstrates how technology can help you make better purchasing decisions. As you continue learning, you can expand this tool to include more features like sorting by battery life, comparing operating systems, or even fetching real-time pricing data from online sources.



