# 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.