我试图找出一种方法,如果输入可以被4整除,则返回true,但不是100,除非也是400.我没有成功尝试过:
def is_leap(year):
leap = False
if [year % 100 == 0 if not year % 400]:
leap = False
else:
if leap % 4 == 0:
leap = True
return leap
2100的输入可以被4和100整除但不是400,所以我希望它返回False。
我已经得出一个简单的结论
def is_leap(year):
leap = False
if year % 4 == 0 and year % 400 == 0:
leap = True
elif year % 4 == 0 and year % 100 != 0:
leap = True
return leap
但除非是否有一种更容易或不同的做法?谢谢。
另外,虽然我主要倾向于使用python3.5来实现每个人所做的事情,但我喜欢2.7的简单性。任何帮助都将不胜感激。
答案 0 :(得分:5)
我只想指出calendar.isleap
是如何做到的:
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
答案 1 :(得分:-2)
我个人会这样写:
def is_leap(year):
if year % 4 == 0 and year % 400 == 0: return True
elif year % 4 == 0 and year % 100 != 0: return True
else: return False
我认为这不会变得更简单:)
答案 2 :(得分:-2)
if year % 4 == 0:
if year % 100 == 0 and year % 400 == 0:
# True
# False
它的要点是处理你的基本条件,它必须能被4整除,然后用一些条件处理其他条件。 第二个if语句确保它可以被100和400
整除