回答編集履歴

1

言葉足らずを補記

2023/07/26 00:46

投稿

ikedas
ikedas

スコア4358

test CHANGED
@@ -1,4 +1,4 @@
1
- 処理単位を関数化することはよいことだと思います。一方で「素数を書き出す」バージョンは、関数化したために`prime_number_list`を毎回、関数に引数として与えるという工夫が必要になっています。グローバル変数にするという方法もあるでしょうが、いずれにしても関数の内部でしか使わない変数が関数の外から見えて操作できる状態す。
1
+ 処理単位を関数化することはよいことだと思います。一方で「素数を書き出す」バージョンは、関数化したために`prime_number_list`を毎回、関数に引数として与えるという工夫が必要になっています。「素数判定」バージョンで再利用しないのであれば、このような引数は不要なはずです。その場合、グローバル変数にするという方法もあるでしょうが、いずれにしても関数の内部でしか使わない変数が関数の外から見えて操作できる状態ということになります。
2
2
 
3
3
  このような場合には[ジェネレータ](https://docs.python.org/ja/3/tutorial/classes.html#generators)関数にすることも考えてよいと思います (詳しくはリンク先のチュートリアルを見てください)。Python以外の言語ではあまり見られない機能ですが、内部状態を保持しながら繰り返し値を返すようなものを作れます。
4
4