Python で数値が偶数か奇数かを確認する

Muhammad Maisam Abbas 2023年1月30日
  1. Python の%演算子を使用して、数値が偶数か奇数かを確認する
  2. Python の&演算子を使用して、数値が偶数か奇数かを確認する
Python で数値が偶数か奇数かを確認する

このチュートリアルでは、Python で数値が偶数か奇数かを確認する方法について説明します。

Python の%演算子を使用して、数値が偶数か奇数かを確認する

定義上、2 で完全に割り切れる整数は偶数と呼ばれます。つまり、2 で割った後、余りが 0 になったとしても、整数になります。数学では、偶数以外のすべての整数は奇数です。別の定義によれば、偶数は 2つに均等に分割できるため、偶数と呼ばれます。たとえば、10 は 5 の 2つの半分に均等に分割できるため、10 は偶数です。逆に、11 は奇数であるため、11 を 2つの完全に等しい数に分割することはできません。

Python では、剰余演算子%が最初の数値を 2 番目の数値で除算し、余りを除算します。除算後の余りが 0 に等しいかどうかをチェックすることにより、数値が奇数か偶数かを判断する方法があります。次のコードスニペットは、剰余演算子%を使用して数値が偶数か奇数かを確認する方法を示しています。

def check(num):
    if num % 2 == 0:
        print("even")
    else:
        print("odd")


check(22)

出力:

even

%演算子を使用して、num が 2 で完全に割り切れるかどうかをチェックする check(num) を定義しました。余りが 0 に等しい場合、数は偶数です。余りが 0 でない場合、数値は奇数です。

Python の&演算子を使用して、数値が偶数か奇数かを確認する

数値が偶数か奇数かを判断するもう 1つの賢い方法は、ビットごとの AND 演算子&を使用することです。ご存知のとおり、コンピューター内のすべてのものは 1 と 0 の形式、つまりバイナリ言語で保存されます。ビット単位の AND 演算子&は、値をバイナリに変換してから、バイナリ式の各ビットに対して AND 演算を実行します。

たとえば、10 進数 11 の 2 進数値は(1011)であり、10 進数 1 は(0001)です。これらの 2つの 10 進数に対してビット単位の演算を実行すると、&演算子は両方の数値の各ビットを取得し、それらに対して AND 演算子を実行して、結果をビットごとに返します。上記の場合、戻り値は(0001)になり、10 進数で 1 になります。

この現象に関するもう 1つの興味深い事実は、偶数と 1 のビット単位の AND 演算を実行すると、結果は常に 0 になることです。それ以外の場合、奇数と 1 のビット単位の AND 演算を実行すると、結果は常に次のようになります。1.1。

以下のサンプルコードは、ビット単位の AND 演算子&を使用して、数値が奇数か偶数かを確認する方法を示しています。

def check(num):
    if num & 1 == 0:
        print("even")
    else:
        print("odd")


check(33)

出力:

odd

num と 1 のビット単位の AND 演算が 0 に等しいかどうかをチェックする check(num) を定義しました。結果が 0 に等しい場合、数値は偶数です。結果が 0 でない場合、数値は奇数です。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Math