Bird Banding 3 (Lists)
This is a follow up to the Bird Banding 1 and Bird Banding 2 problems.
When last we left you, our intrepid hero, you had created the following updated list of bird abundances across sites:
number_of_birds = [28, 32, 1, 0, 10, 22, 30, 19, 145, 27, 36, 25, 9,
38, 21, 12, 122, 87, 36, 3, 0, 5, 55, 62, 98, 32,
90, 33, 14, 39, 56, 81, 29, 38, 1, 0, 143, 37, 98,
77, 92, 83, 34, 98, 40, 45, 51, 17, 22, 37, 48, 38,
91, 73, 54, 46, 102, 273, 60, 10, 11, 27, 24, 16,
9, 23, 39, 102, 0, 14, 3, 9, 93, 64]
For your research on bird counts you need to not only know what many birds are at a single site, but also how many birds occur on groups of sites.
Use slices to answer the following questions:
1. What is the total number of birds for 5 sites starting at site 10?
2. What is the total number of birds at the last 6 sites? Have Python figure out what the last six sites are, don’t just type in their positions.
You’re going to be doing a lot of this sort of analysis, so it’s probably better to have a function that does it for you rather than doing the slicing yourself each time. Cut and paste the following function into your code:
def n_site_count(bird_counts, start_site, number_of_sites):
"""Count the total number of birds at a given number of sites starting
at a given start site."""
start_site = start_site - 1 #convert start site to Python index
sub_sites = bird_counts[start_site:start_site + number_of_sites]
number_of_birds = sum(sub_sites)
return number_of_birds
Use the function to calculate and return the total count of all birds for the n sites starting at the start site. For example, if there are 5 sites and number_of_birds_list = [5, 5, 10, 10, 8], then if starting_site = 2 and number_of_sites = 3 then the function should return the value 25 (5 + 10 + 10). Use the data on the number of birds given in the list above (just copy and paste it into your code) to answer the following questions.
3. What is the total number of birds for 5 sites starting at site 10?
4. What is the total number of birds for 7 sites starting at site 1?
5. What is the total number of birds for 1 site starting at site 23?
6. Think about what the funtion should do if asked for the total number of birds for 10 sites starting at site 70 (Note: there are only 74 sites). Print out a sentence that explains what it actually does.
Expected outputs for Bird Banding 3: