Review Exercise

Overview

Teaching: 0 min
Exercises: 20 min
Questions
  • How can we put together all of yesterday’s material?

Objectives
  • Apply use of functions, conditionals and loops to solve a problem.

Review From Yesterday

In your notebook, write a function that determines whether a year between 1901 and 2000 is a leap year, where it prints a message like “1904 is a leap year” or “1905 is not a leap year” as output. Use this function to evaluate the years 1928, 1950, 1959, 1972 and 1990. Essentially, given this list of years:

years = [1928, 1950, 1959, 1972, 1990]

Produce something like:

1928 is a leap year
1950 is not a leap year.
1959 is not a leap year.
1972 is a leap year
1990 is not a leap year.
8 mod 4 equals 0
10 mod 4 equals 2

If you’re not sure where to start, see the partial answers below:

Suggested Approach

First, try to determine how to use the mod operator % to determine if a year is divisible by 4 (and thus a leap year or not).

Then, create a conditional statement to use this information, and put it into a function.

Finally, create a list of the years given in the exercise. Use a for loop and your function to evaluate these years.

Modular Arthimetic

If a year in the range specified is divisible by four, it is a leap year. If a number is divisible by 4, then the arithmetic expression “number mod four” (or num % 4 in Python) will equal zero.

Conditional Statement

Fill in the blanks:

year = 1904
if year % 4 == _____:
    print(year, _______________)
______:
    print(year, "is not a leap year.")

Function

Fill in the blanks:

def leap_year(year):
    _________

Loop

Fill in the blanks:

year_list = [1928, 1950, 1959, 1972, 1990]
for year in ______:
    ________(year)

Complete Solution

def leap_year(year):
    if year % 4 == 0:
        print(year, "is a leap year")
    else:
        print(year, "is not a leap year.")

year_list = [1928, 1950, 1959, 1972, 1990]
for year in year_list:
    leap_year(year)

If you have time:

  1. Expand your function so that it correctly categorizes any year from 0 onwards

  2. Instead of printing whether a year is a leap year or not, save the results to a python dictionary, where there are two keys (“leap” and “not-leap”) and the values are a list of years.

Key Points

  • Use skills together.