|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- all_year = iter(range(2020))
- all_leapyear = []
- while True:
- i = next(all_year)
- if i%4==0:
- if i%100!=0:
- all_leapyear.append(i)
- if i == 2020:
- all_leapyear.append(i)
- break
- LeapYear = iter(all_leapyear)
- leapyear = LeapYear()
- for i in leapyear:
- if i == 2020:
- print(i)
- break
- else:
- print(i)
复制代码
报错
- Traceback (most recent call last):
- File "C:\Users\chenh\Desktop\实验.py", line 4, in <module>
- i = next(all_year)
- StopIteration
复制代码
为什么会报错
[b]
两个错误:
第一个 range(2020) 不包含 2020 使得 i 不可能等于 2020 导致 next() 最后一次时候迭代器已经为空,抛出错误
第二个错误就是 leapyear = LeapYear() ,这段代码去掉,因为 LeapYear = iter(all_leapyear) 已经是一个迭代器了,你将 LeapYear() 进行调用会导致报错的
参考代码:
- all_year = iter(range(2021))
- all_leapyear = []
- while True:
- i = next(all_year)
- if i%4==0:
- if i%100!=0:
- all_leapyear.append(i)
- if i == 2020:
- all_leapyear.append(i)
- break
- LeapYear = iter(all_leapyear)
- for i in LeapYear:
- if i == 2020:
- print(i)
- break
- else:
- print(i)
复制代码[/b]
|
|