Python Exercises: Count the number of leap years within the range
Count leap years in a year range.
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[0], r[1] + 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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics