Python中的闰年程序
我的代码很难排除故障。我所要做的就是让用户输入起始年和结束年,然后能够计算出两者之间的所有闰年。我对Python还是很陌生,只是不明白为什么我的while循环没有达到我想要的效果Python中的闰年程序,python,Python,我的代码很难排除故障。我所要做的就是让用户输入起始年和结束年,然后能够计算出两者之间的所有闰年。我对Python还是很陌生,只是不明白为什么我的while循环没有达到我想要的效果 starting = int(raw_input('Enter starting year: ')) ending = int(raw_input('Enter ending year: ')) print 'Leap years between', starting, 'and', ending while star
starting = int(raw_input('Enter starting year: '))
ending = int(raw_input('Enter ending year: '))
print 'Leap years between', starting, 'and', ending
while starting <= ending:
if starting % 4 == 0 and starting % 100 != 0:
print starting
if starting % 100 == 0 and starting % 400 == 0:
print starting
starting = starting + 1
start=int(原始输入('输入起始年份:'))
ending=int(原始输入('输入结束年份:'))
打印“开始”和“结束”之间的闰年
启动时,代码工作正常。这是下一届会议:
Enter starting year: 2008
Enter ending year: 2032
Leap years between 2008 and 2032
2008
2012
2016
2020
2024
2028
2032
这完全符合e
控制台会话:
>>> from leapyear import leap
>>> leap()
Enter starting year: >? 2008
Enter ending year: >? 2032
Leap years between 2008 and 2032
2008
2012
2016
2020
2024
2028
2032
>>> from leapyear import new_leap
>>> new_leap(2008, 2032)
[2008, 2012, 2016, 2020, 2024, 2028, 2032]
leapyear.py
控制台会话:
>>> from leapyear import leap
>>> leap()
Enter starting year: >? 2008
Enter ending year: >? 2032
Leap years between 2008 and 2032
2008
2012
2016
2020
2024
2028
2032
>>> from leapyear import new_leap
>>> new_leap(2008, 2032)
[2008, 2012, 2016, 2020, 2024, 2028, 2032]
我认为这将包含所有的测试用例
我们在value=c中添加了所有无效案例
刚刚匹配并删除了b的值
def is_leap(year):
leap = False
leap1=True
b=[]
for a in range(1800,year+200,4):
b.append(a)
c=[1800,1900,2100,2200,2300,2500,2600,2700,2800,2900]
for d in range(len(c)):
e=c[d]
if e in b:
b.remove(e)
if year in b:
return leap1
else:
return leap
year = int(input())
print(is_leap(year))
那么代码做错了什么?乍一看,这段代码似乎运行良好。目前,在打印“闰年间隔”后,它刚刚完全停止。没有我的while循环,这条线工作得很好,但是有了我的while循环,它就停在那个点上了。编辑:我已经包括了一个屏幕截图来显示我的代码正在做什么。这里似乎很好,很有趣。尝试执行print'Leap years interference{}and{}。format(start,end)
您可能没有保存代码。列表理解中的逻辑不正确:例如,它将1900作为闰年。@FMc我深表歉意。我现在已经修好了。请你看一下好吗?
def is_leap(year):
leap = False
if year%4 ==0 :
leap = True
elif year%100 ==0:
leap = False
elif year%400 ==0:
leap = True
return leap
year = int(raw_input())
print is_leap(year)