python中while循环(__iter__,__next__)
本帖最后由 sunyt 于 2021-12-23 08:44 编辑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
如上代码我不是很懂:
while not self.isLeapYear(self.now):
这句话如果结果是False,while循环不会结束吗?
本帖最后由 jackz007 于 2021-12-23 00:10 编辑
你说的没错
not self.isLeapYear(self.now)
只有在这个布尔表达式的值为 True 的时候才会循环
就是说,只有在 self . now 不是闰年的时候才会循环。 . jackz007 发表于 2021-12-23 00:07
你说的没错
只有在这个布尔表达式的值为 True 的时候才会循环
我想了半天总算想明白了,谢谢。
页:
[1]