pythonでn回ごとに1回処理を行う

割り算の余りが出ない場合

プログラムと言えば[+、-、×、÷]の四則演算が基本ですが、

割り算の計算の余りを求める[%]を利用します

例えば3回に1回処理を行いたい場合は

※ループなのでCtrl+Cで抜けてください

とします

%は割り算の余り(剰余)を出す算術演算子なので

1 ÷ 3 の時に 1 (0あまり1)
2 ÷ 3 の時に 2 (0あまり2)
3 ÷ 3 の時に 0 (1あまり0)
4 ÷ 3 の時に 1 (1あまり1)
5 ÷ 3 の時に 2 (1あまり2)
6 ÷ 3 の時に 0 (2あまり0)
7 ÷ 3 の時に 1 (2あまり1) …
となっています
それを利用して[余りが出ずに割り算できるとき]にはこの処理を行う
という指定ができるようになります
面白いですよね

1÷3の時に1?と腑に落ちない方も多いと思います
義務教育を卒業した今の知識だと、
0.33333…と計算できてしまうので余りが出ること自体を
変に思うイメージがついている気がします

小学生の時に小数点を覚える前だと納得しやすそうです

1つの物を3人で分ける
1つの物はバラバラに分割できない
なのでだれにも配れず1つ余る

2つの物を3人で分ける
2つの物はそれぞれバラバラに分割できない
なのでだれにも配れず2つ余る

平等に配れないのなら、その時点で分けるのを止める

こんなイメージだと納得しやすいのではないでしょうか

5回に一回の処理だと [i % 5 == 0]

1 ÷ 5 の時に1 (0あまり1)
2 ÷ 5 の時に2 (0あまり2)
3 ÷ 5 の時に3 (0あまり3)
4 ÷ 5 の時に4 (0あまり4)
5 ÷ 5 の時に0 (1あまり0)
6 ÷ 5 の時に1 (1あまり1)
7 ÷ 5 の時に2 (1あまり2) …

10回に一回の処理だと [i % 10 == 0]、100回に一回の処理だと [i % 100 == 0]

と数字を変えるだけでOKです

・データ取得の10回に1回ログをコンソールに表示する
・time.sleep(1)をループしてる時に30秒に一回処理を行う
・データが100溜まるごとに処理を行う
等々使い道は色々あると思います

以上です

シェアする

  • このエントリーをはてなブックマークに追加

フォローする