gpt4 book ai didi

python - 如何解决 Python 中的 StopIteration 错误?

转载 作者:行者123 更新时间:2023-12-04 01:35:33 24 4
gpt4 key购买 nike

我刚刚阅读了一堆关于如何在 Python 中处理 StopIteration 错误的帖子,我在解决我的特定示例时遇到了问题。我只想用我的代码打印出 1 到 20,但它打印出错误 StopIteration。我的代码是:(我是这里的新手,所以请不要阻止我。)

def simpleGeneratorFun(n):

while n<20:
yield (n)
n=n+1
# return [1,2,3]

x = simpleGeneratorFun(1)
while x.__next__() <20:
print(x.__next__())
if x.__next__()==10:
break

最佳答案

任何时候你使用 x.__next__() 它都会得到下一个产生的数字 - 你不会检查每个产生的数字并且跳过 10 - 所以它会在 20 之后继续运行并中断。

修复:

def simpleGeneratorFun(n):

while n<20:
yield (n)
n=n+1
# return [1,2,3]

x = simpleGeneratorFun(1)
while True:
try:
val = next(x) # x.__next__() is "private", see @Aran-Frey comment
print(val)
if val == 10:
break
except StopIteration as e:
print(e)
break

关于python - 如何解决 Python 中的 StopIteration 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com