如何解决如何在 Python 中确定一年是闰年以及之后年份的天气?
我必须编写一个for循环程序,要求用户输入年份和年数,首先确定输入的年份是否为闰年 ,其次输入此后的年数以检查这些是否也是闰年。
我的输出应该是这样的:
您想从哪一年开始? 1994
您要检查多少年? 8
1994年不是闰年
1995年不是闰年
1996年是闰年
1997年不是闰年
1998年不是闰年
1999年不是闰年
2000年是闰年
2001 年不是闰年
到目前为止,我的代码可以检查特定年份,但我正在努力循环它,以便它在此后的几年中继续。
这是我的代码:
print ("""Enter a year to see if it is a leap year,then enter the number of years there after you want to check""")
year_start = int(input("\nWhat year do you want to start with?\n"))
num_of_years = int(input("How many years do you want to check?\n"))
# I can't figure out the 'for loop' Syntax to loop this statement
if (year_start % 4) == 0:
if (year_start % 100) == 0:
if (year_start % 400) == 0:
print (f"{year_start} is a leap year")
else:
print (f"{year_start} isn't a leap year")
else:
print (f"{year_start} is a leap year")
else:
print (f"{year_start} isn't a leap year")
解决方法
尝试将您的代码更改为:
print ("""Enter a year to see if it is a leap year,then enter the number of years there after you want to check""")
year_start = int(input("\nWhat year do you want to start with?\n"))
num_of_years = int(input("How many years do you want to check?\n"))
# I can't figure out the 'for loop' syntax to loop this statement
for i in range(year_start,year_start + num_of_years):
if (i % 4) == 0:
print (f"{i} is a leap year")
else:
print (f"{i} isn't a leap year")
示例输出:
Enter a year to see if it is a leap year,then enter the number of years there after you want to check
What year do you want to start with?
1994
How many years do you want to check?
8
1994 isn't a leap year
1995 isn't a leap year
1996 is a leap year
1997 isn't a leap year
1998 isn't a leap year
1999 isn't a leap year
2000 is a leap year
2001 isn't a leap year
您可以使用 for
循环并使用 range
对序列进行迭代。那么你只需要(i % 4) == 0
,你不需要其他条件。
仅除以 4 不足以找到闰年。你必须检查 100 和 400。
请检查 https://en.wikipedia.org/wiki/Leap_year#/media/File:Leap_Centuries.jpg 是否为闰年。
def is_leap_year(year: int) -> bool:
# Returns True if the given year is a leap year
return bool((not year % 400) or ((not year % 4) and year % 100))
,
使用 range(num_of_years) 如下:
for i in range(num_of_years):
您应该将所有闰年逻辑封装在 for 循环中并进行一些调整,但您应该能够自己计算出来,祝您好运。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。