Challenge: Product Revenues Capstone
Let's put together everything you've learned in this section and apply it.
In this task, your objective is to calculate the total revenue for each product in a grocery store based on their prices and quantities sold.
After calculating the revenues, you will sort the products alphabetically and display the results in a formatted output.
Swipe to start coding
Calculate and display product revenues using functions, with results presented in a clear, formatted way.
-
Define
calculate_revenue(prices, quantities_sold)
:- Multiply each pair of elements from
prices
andquantities_sold
; - Store the results in a list called
revenue
and return it.
- Multiply each pair of elements from
-
Define
formatted_output(revenues)
:- Accepts a list of tuples:
(product_name, revenue)
; - Sort the list alphabetically by product name;
- Print each product and its revenue using the specified format.
- Accepts a list of tuples:
-
Use
calculate_revenue()
to generate therevenue
list. -
Use
zip()
to combineproduct_names
andrevenue
into a list of tuples calledrevenue_per_product
. -
Call
formatted_output()
to print the sorted results.
Output Requirements
-
For each product, print:
<product_name> has total revenue of $<revenue>
-
Ensure products are sorted alphabetically before printing.
Requirements checklist
- Call
calculate_revenue([0.50, 1.20, 2.50, 2.00], [150, 200, 100, 50])
and check that the returned list has the same length as the input lists and each element is equal to the product of the corresponding elements from the input lists. - Call
formatted_output([("Bread", 75.0), ("Apples", 240.0), ("Oranges", 250.0), ("Bananas", 100.0)])
and check that the printed output contains four lines, each matching the format<product_name> has total revenue of $<revenue>
, with the product names in alphabetical order. - Check that the output for the provided example data contains the lines: "Apples has total revenue of $240.0", "Bananas has total revenue of $100.0", "Bread has total revenue of $75.0", and "Oranges has total revenue of $250.0".
- Check that the function
formatted_output
sorts the input list of tuples by product name alphabetically before printing, regardless of the input order. - Check that the function
calculate_revenue
does not modify the input lists. - Check that the function
formatted_output
does not return any value (returns None).
Solution
Thanks for your feedback!