|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 KONGYIYAO 于 2020-7-15 21:42 编辑
- import datetime as dt
- class LeapYear:
- def __init__(self):
- self.now = dt.date.today().year
- def isLeapYear(self, year):
- if (year%4 == 0 and year%100 != 0) or (year%400 == 0):
- return True
- else:
- return False
-
- def __iter__(self):
- return self
- def __next__(self):
- while not self.isLeapYear(self.now):
- self.now -= 1
- temp = self.now
- self.now -= 1
-
- return temp
复制代码
该代码是打印出所有闰年,我知道第21行的self.now-=1 是进入下一个迭代。但是 while not self.isLeapYear self.now-=1是什么含义(就是18行的self.now-=1),这里的作用是什么
前面 self.isLeapYear() 返回一个布尔值表示是否为闰年
self.__next__() 中,如果 self.isLeapYear() 是 False(not False = True),表达式成立,为了找到闰年,需要 self.year 递减 1 直到找到第一个闰年停止 while 循环
|
|