##前提・実現したいこと
初心者向けの本でジェネレータ関数について勉強中です。
printされず、「Process finished with exit code -1」となる理由を知りたいです。
##発生している問題・エラーメッセージ
print(next(i))と書いたのですが、実行してもずっと実行中のままでprintされず、
停止すると「Process finished with exit code -1」と表示されます。
##該当のソースコード
素数を求める関数です。
python3
1def get_primes(x=2): 2 while True: 3 for i in range(2,x): 4 if x % i == 0: 5 break 6 else: 7 yield x 8 x += 1 9 10i = get_primes() 11for c in range(10): 12 print(next(i)) 13
##試したこと
print(next(i))をprint(i)にしたところ、
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
<generator object get_primes at 0x000001A4215892B0>
Process finished with exit code 0
と表示されました。
next(i)が原因なのか?と考えましたが、
next(i)の何が原因で、(i)だけにしたことでなぜ表示されるようになったのかもよくわかっていません。
上記の(i)だけにしたことについてはさておき、
まずはprint(next(i))で正しくprintされるようにするためにどうしたらよいか、
また、「Process finished with exit code -1」と表示されることについて「-1」とはどういう意味なのか教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー