Nested Conditionals in Python - Homework
Categories: PythonApply your skills of multilayered conditionals and combine all you've learned so far.
Nested Conditionals Homework: Python
Complete the following three problems to practice working with nested conditionals. Each problem increases in difficulty. All problems must be completed in Python.
Problem 1: Complete the Shipping Cost Calculator (Easy)
An online store calculates shipping costs based on the order total and membership status. The partially completed code below needs to be finished.
Rules:
- If order total is $50 or more:
- Free shipping for members
- $5 shipping for non-members
- If order total is less than $50:
- $3 shipping for members
- $8 shipping for non-members
Your task: Complete the nested conditional so that when you run the code with the given initial values (order_total = 45 and is_member = True), the output shows a shipping cost of $3.
# Initial conditions - DO NOT CHANGE THESE
order_total = 45
is_member = True
shipping_cost = 0
print(f"Order Total: ${order_total}")
print(f"Member: {is_member}")
# YOUR CODE HERE: Complete the nested conditional
if order_total >= 50:
if is_member:
shipping_cost = 0
else:
shipping_cost = 5
else:
order_total < 50
if is_member:
shipping_cost = 3
else:
shipping_cost = 8
print(f"Shipping Cost: ${shipping_cost}")
# Expected output with given values: Shipping Cost: $3
Order Total: $45
Member: True
Shipping Cost: $3
Problem 2: Build a Restaurant Recommendation System (Medium)
Create a system that recommends a restaurant based on the user’s budget and cuisine preference.
Requirements:
- If budget is “high” (over $30 per person):
- If cuisine is “italian”: recommend “Bella Notte”
- If cuisine is “japanese”: recommend “Sakura Palace”
- For any other cuisine: recommend “The Grand Bistro”
- If budget is “medium” ($15-$30 per person):
- If cuisine is “italian”: recommend “Mario’s Pizzeria”
- If cuisine is “japanese”: recommend “Tokyo Express”
- For any other cuisine: recommend “Downtown Diner”
- If budget is “low” (under $15 per person):
- Recommend “Food Court” regardless of cuisine preference
Your task: Write the complete nested conditional structure. Store the recommendation in the recommendation variable.
# Test variables
budget_per_person = 25
cuisine = "japanese"
recommendation = ""
print(f"Budget per person: ${budget_per_person}")
print(f"Preferred cuisine: {cuisine}")
# YOUR CODE HERE: Write the complete nested conditional
if budget_per_person >= 30:
if cuisine == "italian":
recommendation = "Bella Notte"
elif cuisine == "japanese":
recommendation = "Sushi World"
else :
recommendation = "The Grand Bistro"
elif 15 < budget_per_person < 30 :
if cuisine == "italian":
recommendation = "Mario's Pizzeria"
elif cuisine == "japanese":
recommendation = "Tokyo Express"
else :
recommendation = "Downtown Diner"
else :
recommendation = "Food Court"
print(f"\nRecommendation: {recommendation}")
# Test your code with these scenarios:
# budget_per_person=35, cuisine="italian" → "Bella Notte"
# budget_per_person=25, cuisine="japanese" → "Tokyo Express"
# budget_per_person=20, cuisine="mexican" → "Downtown Diner"
# budget_per_person=10, cuisine="italian" → "Food Court"
Budget per person: $25
Preferred cuisine: japanese
Recommendation: Tokyo Express
Problem 3: Design a Smart Home Thermostat System (Hard)
You’re designing the logic for a smart thermostat that automatically adjusts temperature based on multiple factors.
Word Problem:
The thermostat needs to decide what action to take based on:
- Current temperature
- Whether anyone is home
- Time of day (represented as “day” or “night”)
- Energy saving mode (on or off)
Logic Requirements:
- If someone is home:
- During the day:
- If temp is above 75°F: set action to “cooling” and target_temp to 72
- If temp is below 68°F: set action to “heating” and target_temp to 70
- Otherwise: set action to “maintaining” and keep current temp
- During the night:
- If temp is above 72°F: set action to “cooling” and target_temp to 68
- If temp is below 65°F: set action to “heating” and target_temp to 68
- Otherwise: set action to “maintaining” and keep current temp
- During the day:
- If no one is home:
- If energy saving mode is ON:
- If temp is above 80°F: set action to “cooling” and target_temp to 78
- If temp is below 60°F: set action to “heating” and target_temp to 62
- Otherwise: set action to “off” and target_temp to current temp
- If energy saving mode is OFF:
- Set action to “maintaining” and target_temp to 70
- If energy saving mode is ON:
Your task: Design the complete nested conditional algorithm from scratch. You’re given the framework below with initial values, but NO code. Write the entire logic yourself.
# Test variables
current_temp = 78
is_home_occupied = True
time_of_day = "day" # "day" or "night"
energy_saving_mode = False
# Variables to set
action = "" # "heating", "cooling", "maintaining", or "off"
target_temp = current_temp
print("=== Smart Thermostat Status ===")
print(f"Current Temperature: {current_temp}°F")
print(f"Home Occupied: {is_home_occupied}")
print(f"Time of Day: {time_of_day}")
print(f"Energy Saving Mode: {energy_saving_mode}")
print()
# Nested conditional
if is_home_occupied:
if time_of_day == "day":
if target_temp > 75:
target_temp = 78 if energy_saving_mode else 72
action = "cooling"
elif target_temp < 68:
target_temp = 68 if energy_saving_mode else 70
action = "heating"
elif 68 <= target_temp <= 75:
action = "maintaining"
else: # night
if target_temp > 72:
target_temp = 72 if energy_saving_mode else 68
action = "cooling"
elif target_temp < 65:
target_temp = 65 if energy_saving_mode else 68
action = "heating"
elif 65 <= target_temp <= 72:
action = "maintaining"
else: # Home not occupied
if energy_saving_mode:
if target_temp > 80:
target_temp = 80
action = "cooling"
elif target_temp < 60:
target_temp = 60
action = "heating"
else:
action = "maintaining"
else:
target_temp = 70
action = "maintaining"
print("=== Thermostat Action ===")
print(f"Action: {action}")
print(f"Target Temperature: {target_temp}°F")
=== Smart Thermostat Status ===
Current Temperature: 78°F
Home Occupied: True
Time of Day: day
Energy Saving Mode: False
=== Thermostat Action ===
Action: cooling
Target Temperature: 72°F
Reflection Questions
After completing all three problems, answer these questions:
- Which problem was the most challenging and why?
Definitely the third, it had many possibilities and conditions mixed, it was hard to keep all of them connected, took me multiple tries to complete.
- How did you decide on the structure of your nested conditionals in Problem 3?
I decided to do some research on how to make a range so I can create a possbility of maintaing my temp, I first decided to see if someone is home, then if energySavingMode was on or not, then it was the daytime.
- Can you think of a real-world situation where you would need even MORE levels of nesting than Problem 3?
Probably: If I dont study for test 3 for my AP CALC BC class, I will probably not be prepared for the final. If I dont have good foundation of knowledge for the final, I will likely fail the course. If I fail the course for this Tri, I will likely not have enough knowledge to get a good grade for the class this year. If I dont have enough knowledge and is getting bad grades, I will likely not do good on the AP exam. If I fail the class and the AP exam, I will likely have a bad record and I wont be able to get to good colleges. If I dont go to a college, I wont be able to find a good job. If I dont get a good job, I will likely not have enough money to live comfortably.