Home » Python » Pythonで倍数判定を行うには

Pythonで倍数判定を行うには

動作検証バージョン:Windows 11 Home + Python 3.10.6

このサイト『インストラクターのネタ帳』のアクセスログを眺めていて
「python 倍数判定」
といった検索でアクセスがあることに気がつきました。

何らかの数値が、ある整数の倍数であることをPythonで判定するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。

[スポンサードリンク]

考え方としては、割り算した余りが「0」であれば、割られた数値が、割った整数の倍数であると判定できます。

3の倍数のみを出力するPythonのサンプル

以下のコードを実行すると、1から20までの整数の中で、3の倍数だけが出力されます。

for i in range(1, 21):
    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の倍数だけが出力されます。

for i in range(1, 21):
    if i % 5 == 0:
        print(i)

先にご紹介した3の倍数を出力するコードとの違いは、

    if i % 5 == 0:

の部分だけです。

比較演算子を行わなくても可能

Pythoでは整数の「0」はFalseと等価ですから、比較演算子を使わない以下のようなコードでも、3の倍数であることを判定して3の倍数のみを出力できます。

for i in range(1, 21):
    if not i % 3:
        print(i)

拙著の「第4章-05 VBAより便利な論理演算」でも解説しているnot演算子を使って「i % 3」の結果を反転しています。

先にご紹介した「if i % 3 == 0:」のほうが可読性は優れていると感じますが、0との比較演算に慣れたら「if not i % 3:」の考え方も理解することをおすすめします。

[スポンサードリンク]

Home » Python » Pythonで倍数判定を行うには

「Python」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.