Question
In the cell below is a list of tuples, where each tuple is of the form (year, midyear-population) or (int, int). The data contained in
In the cell below is a list of tuples, where each tuple is of the form (year, midyear-population) or (int, int). The data contained in the list is based on estimates made by StatsCan of the Canadian population in the middle the given year and compiled together in one place by the Newfoundland and Labrador Statistics Agency. (The specific data provided in this assignment was obtained from https://bit.ly/293ECTS).
If you use shift-enter in the cell below, its definitions will become part of this notebook's variable definitions and will be afterwards accessible in any other code cell.
# population data MIDYEAR_POPULATION = [(1971, 21962032), (1972, 22218463), (1973, 22491777), (1974, 22807969), (1975, 23143275), (1976, 23449808), (1977, 23725843), (1978, 23963203), (1979, 24201544), (1980, 24515667), (1981, 24819915), (1982, 25116942), (1983, 25366451), (1984, 25607053), (1985, 25842116), (1986, 26100278), (1987, 26446601), (1988, 26791747), (1989, 27276781), (1990, 27691138), (1991, 28037420), (1992, 28371264), (1993, 28684764), (1994, 29000663), (1995, 29302311), (1996, 29610218), (1997, 29905948), (1998, 30155173), (1999, 30401286), (2000, 30685730), (2001, 31020596), (2002, 31358418), (2003, 31641630), (2004, 31938004), (2005, 32242364), (2006, 32570505), (2007, 32887928), (2008, 33245773), (2009, 33628571), (2010, 34005274), (2011, 34342780), (2012, 34750545), (2013, 35152370), (2014, 35535348), (2015, 35832513), (2016, 36264604), (2017, 36708083)]
Your task for part B of assignment #4 is to complete the functions greatest_increase, smallest_increase, and average_percentage_increase in the code cell below. Note that unlike in part A of this assignment where the data in the list could be accessed as a global variable in this part of the assignment the list must be passed as an argument to the three functions.
The code for main is already provided to you.
Please note that we will test your assignment with data other than that provided in the cell above. For example, assuming the data used is as follows (with test_list defined in the main function):
test_list = [(1900, 10000), (1901, 10100), (1902, 10211), (1903, 10287)]
then the following is an expected transcript from a completed solution:
Greatest increase: 1902 111 Smallest increase: 1903 76 Average percentage increase: 0.95%
Do not use any libraries for this assignment other than the standard library (i.e., no use of NumPy, SciPy, pandas etc. is permitted).
Hint: To iterate through a list starting from the second element, we can write:
for elem in some_list[1:]: # body of for-loop
def greatest_increase(pop_stats): """ function: greatest_increase Given a list of tuples of the form (year, population), the function finds the year for which is recorded the greatest increase in population from the previous year. Input: ------ * pop_stats: A list of tuples of the form (year, population). The tuples are sorted by year, and there are no gaps between years. Outputs: -------- * A pair of values consisting of the year with the greatest population increase, and the amount of that increase. """ return 0, 0
def smallest_increase(pop_stats): """ function: smallest_increase Given a list of tuples of the form (year, population), the function finds the year for which is recorded the smallest increase in population from the previous year. Input: ------ * pop_stats: A list of tuples of the form (year, population). The tuples are sorted by year, and there are no gaps between years. Outputs: -------- * A pair of values consisting of the year with the smallest population increase, and the amount of that increase. """ return 0, 0
def average_percentage_increase(pop_stats): """ function: average_percentage_increase Given a list of tuples of the form (year, population), the function computes the percentage change in population from year to year, and returns the average percentage change (i.e., a number from 0 to 100). Input: ------ * pop_stats: A list of tuples of the form (year, population). The tuples are sorted by year, and there are no gaps between years. Output: -------- * A single value that is the average of percentage changes from year to year (i.e., a value from 0.0 to 100.0). """ return 0
def main(): year, increase = greatest_increase(MIDYEAR_POPULATION) print("Greatest increase: ", year, increase) year, increase = smallest_increase(MIDYEAR_POPULATION) print("Smallest increase: ", year, increase) average = average_percentage_increase(MIDYEAR_POPULATION) print("Average percentage increase: ", format(average, ".2f"), "%", sep="") main()
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started