このサイト『インストラクターのネタ帳』のアクセスログを眺めていて
「python 倍数判定」
といった検索でアクセスがあることに気がつきました。
何らかの数値が、ある整数の倍数であることをPythonで判定するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。
考え方としては、割り算した余りが「0」であれば、割られた数値が、割った整数の倍数であると判定できます。
3の倍数のみを出力するPythonのサンプル
以下のコードを実行すると、1から20までの整数の中で、3の倍数だけが出力されます。
if i % 3 == 0:
print(i)
上記コードの、
if i % 3 == 0:
の行が、変数iに代入されている値が、3の倍数であることを判定している箇所です。
拙著『Excel VBAユーザーのためのPythonプログラミング入門』の、「第6章-01 VBAのFor~NextとPythonのfor文+range関数」でも解説しているとおり、以下のfor文で変数iには1から20までの整数が順番に代入されます。
for i in range(1, 21):
拙著の「第2章-04 同じ演算子と異なる演算子」で解説している、割り算の余りを求める%演算子で、変数iを割り算して結果が0ならば、iを出力しています。
if i % 3 == 0:
print(i)
5の倍数のみを出力するサンプル
以下のコードを実行すると、1から20までの整数の中で、5の倍数だけが出力されます。
if i % 5 == 0:
print(i)
先にご紹介した3の倍数を出力するコードとの違いは、
if i % 5 == 0:
の部分だけです。
比較演算子を行わなくても可能
Pythoでは整数の「0」はFalseと等価ですから、比較演算子を使わない以下のようなコードでも、3の倍数であることを判定して3の倍数のみを出力できます。
if not i % 3:
print(i)
拙著の「第4章-05 VBAより便利な論理演算」でも解説しているnot演算子を使って「i % 3」の結果を反転しています。
先にご紹介した「if i % 3 == 0:」のほうが可読性は優れていると感じますが、0との比較演算に慣れたら「if not i % 3:」の考え方も理解することをおすすめします。
- Newer:Windows11でテーマの保存場所を表示する
- Older:メモ帳起動時に前に開いていたファイルを開かないように