﻿ Python - Count the number of leap years within the range

# Python Exercises: Count the number of leap years within the range

## Python String: Exercise-109 with Solution

Write a Python program that counts the number of leap years within the range of years. Ranges of years should be accepted as strings.

Sample Data:
("1981-1991") -> 2
("2000-2020") -> 6

Sample Solution-1:

Python Code:

``````# Define a function to count the number of leap years within a given range of years
def test(r_years):
# Extract the start and end year from the input string
start_year, end_year = map(int, r_years.split('-'))
# Use a generator expression to count the leap years within the specified range
return sum(is_leap_year(year) for year in range(start_year, end_year+1))

# Define a function to check if a given year is a leap year
def is_leap_year(y):
# Check the leap year conditions and return True if it's a leap year, otherwise False
if y % 400 == 0:
return True
if y % 100 == 0:
return False
if y % 4 == 0:
return True
else:
return False

# Initialize a string representing a range of years
text = "1981-1991"

# Print the range of years
print("Range of years:", text)

# Print a message indicating the counting of leap years within the specified range
print("Count the number of leap years within the said range:")

# Call the function to count and print the result
print(test(text))

# Repeat the process with a different range of years
text = "2000-2020"

# Print the range of years
print("\nRange of years:", text)

# Print a message indicating the counting of leap years within the specified range
print("Count the number of leap years within the said range:")

# Call the function to count and print the result
print(test(text))
```
```

Sample Output:

```Range of years: 1981-1991
Count  the number of leap years within the said range:
2
Range of years: 2000-2020
Count  the number of leap years within the said range:
6
```

Flowchart: Sample Solution-2:

Python Code:

``````# Define a function to count the number of leap years within a given range of years
def test(r_years):
# Convert the input range of years string into a list of integers
r = [int(x) for x in r_years.split('-')]
# Use a list comprehension to create a list of leap years within the specified range
return [is_leap_year(int(x)) for x in range(r, r + 1)].count(True)

# Define a function to check if a given year is a leap year
def is_leap_year(y):
# Check the leap year conditions and return True if it's a leap year, otherwise False
if y % 400 == 0:
return True
if y % 100 == 0:
return False
if y % 4 == 0:
return True
else:
return False

# Initialize a string representing a range of years
text = "1981-1991"

# Print the range of years
print("Range of years:", text)

# Print a message indicating the counting of leap years within the specified range
print("Count the number of leap years within the said range:")

# Call the function to count and print the result
print(test(text))

# Repeat the process with a different range of years
text = "2000-2020"

# Print the range of years
print("\nRange of years:", text)

# Print a message indicating the counting of leap years within the specified range
print("Count the number of leap years within the said range:")

# Call the function to count and print the result
print(test(text))
```
```

Sample Output:

```Range of years: 1981-1991
Count  the number of leap years within the said range:
2
Range of years: 2000-2020
Count  the number of leap years within the said range:
6
```

Flowchart: Python Code Editor:

Previous Python Exercise: Hash elements.
Next Python Exercise: Insert space before capital letters in word.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿