I am trying to write a program that determines leap years. My problem is that I cannot convert the year variable into an integer. I attempt to parse the variable in the try statement. the error I am receiving is
line 19, in divide_by_4
if (year%4) == 0:
TypeError: not all arguments converted during string formatting
My code is below: and the file I imported in only had 1804 in it
def is_year(year):
'''determine if the input year can be converted into an integer'''
try:
int(year)
return year
except ValueError:
print("current year is not a year")
def divide_by_4(year):
if (year%4) == 0:
return True
def divide_by_100(year):
if (year % 100) == 0:
return True
def divide_by_400(year):
if (year % 400) == 0:
return True
def leap_year(year):
if is_year(year):
if divide_by_4(year):
if divide_by_100(year):
if divide_by_400(year):
return True
else:
if divide_by_400(year):
return True
def main():
input_file = input("Enter the file input file name: ")
output_file = input("Enter the output file name: ")
try:
file_in = open(input_file, 'r')
except IOError:
print("The input file could not be opened. The program is ending")
try:
file_out = open(output_file, 'w')
except IOError:
print("The output file could not be opened. The program is ending")
for years in file_in:
if leap_year(years):
file_out.write(years)
file_in.close()
file_out.close()
main()