이 한 번 봐, 문제의 핵심은 맨 아래에 있습니다 : 즉StopIteration을 여기에서 제기하지 않는 이유는 무엇입니까?
>>> scan = iter('FHUR203459')
>>> while True:
print(next(scan))
F
H
U
R
2
0
3
4
5
9
Traceback (most recent call last):
File "<pyshell#11>", line 2, in <module>
print(next(scan))
StopIteration
>>> scan = iter('FHUR203459')
>>> for i in range(12): # 12 * 2 for each join is 24, much longer than the string; should raise error.
print(''.join(next(scan) for i in range(2)))
FH
UR
20
34
59
>>>
, 우리는하지만 그것은 단지에서 StopIteration
제기, 반복자는 두 경우 모두에서이 다한 것을 알 수 있습니다 첫 번째로, 비록 next()
이 두 상황에서 모두 사용되었지만 마지막에 도달했습니다. 왜 join
에서 사용하면 오류를 피하는 것 같습니다. 아니면이 버그입니까?
고맙습니다. 매우 유익했습니다. –