[英]Leap year while-loop
我有问题。 基本上,代码不会让我在用户提交一年后添加一年以检查它是否是闰年。 如果是闰年,则循环停止,如果不是,我需要添加一年并给我闰年。 我该如何改进它?
year = int(input("Year:"))
while True:
leapyear = year+1
if leapyear%4 == 0 and leapyear%100 != 0 or leapyear%100 == 0 and leapyear%400 == 0:
break
if True:
print(f"The next leap year after {year} will be {leapyear}")
使用leapyear = year+1
你不增加它,如果year=2013
,循环将使得leapyear = 2013+1 = 2014
每次,你需要增加leapyear
year = 2016
leapyear = year
while True:
if leapyear % 4 == 0 and leapyear % 100 != 0 or leapyear % 100 == 0 and leapyear % 400 == 0:
break
leapyear += 1
print(f"The next leap year after {year} will be {leapyear}")
您可以在一个语句中缩短while
+ if/break
while not (leapyear % 4 == 0 and leapyear % 100 != 0 or leapyear % 100 == 0 and leapyear % 400 == 0):
leapyear += 1
正如 azro 指出的那样, leapyear
将永远等于year + 1
,并且要使其增加,您可以做leapyear = leapyear + 1
。
同样在您提供的代码中,您正在检查用户输入的年份之后的年份是否是闰年。 如果您还打算检查当前年份,则应在增加闰年之前先执行 if 语句。
if True:
这将始终运行,因此您最好不要包含它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.