Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのcmp()関数とは?2つの整数を比較する方法をわかりやすく解説

cmp()関数とは

cmp()は、2つの整数を比較するためのPython標準ライブラリの関数です。比較結果は以下の3パターンで返されます。

  • 最初の整数が2番目より小さい場合:-1
  • 最初の整数が2番目より大きい場合:1
  • 両者が等しい場合:0

なお、組み込み関数のcmp()はPython 3で廃止されました。そのため本記事では、同じ挙動を再現する独自関数を定義し、その使い方を紹介します。実装は非常にシンプルで、PythonではTrueが1、Falseが0として扱われる性質を利用した「(x > y) - (x < y)」という式で実現できます。

サンプルコード

次の例では、x>y、x<y、x=y の各ケースに加えて、cmp()を使った偶数・奇数の判定方法も示しています。kを2で割った余り(k % 2)が1なら奇数、0なら偶数になる仕組みを利用しています。

def cmp(x, y):
    return (x > y) - (x < y)

# x > y の場合
x = 5
y = 3
print("x>y のときのcmp値 : ", cmp(x, y), "\n")

# x < y の場合
x = 7
y = 9
print("x

実行結果

上記のコードを実行すると、以下のような出力が得られます。

x>y のときのcmp値 :  1

x

ポイント解説

  • 戻り値の仕組み:(x > y) と (x < y) はそれぞれブール値(True/False)を返します。これらの差を取ることで、大きければ1、小さければ-1、等しければ0が得られます。
  • 偶数・奇数判定:cmp(0, k % 2) は、k % 2 が1(奇数)のとき-1、0(偶数)のとき0を返します。if文の条件が真になるのは奇数の場合のみなので、分岐処理が簡潔に書けます。
  • Python 3での注意点:cmp()はPython 3では利用できません。ソート時の比較ロジックが必要な場合は、functoolsモジュールのcmp_to_key()を使うのが一般的です。
  1. Python Tkinterのafter()メソッドの使い方を徹底解説

    Tkinterは、PythonでGUIアプリケーションを作成するための標準ライブラリです。ウィンドウやボタン、ラベルなどのウィジェットを作成・操作するための組み込みメソッドが多数用意されており、データの表示やGUIイベントの処理を簡単に実装できます。本記事では、その中でも特に便利なafter()メソッドの使い方について、具体的なコード例とともに詳しく解説します。after()メソッドの基本構文.after(delay, FuncName=FuncName)このメソッドは、指定した遅延時間(ミリ秒単位)が経過した後に、引数として渡した関数FuncNameを呼び出します。タイマー処理や定期的な更新

  2. Python Tkinterのgeometry()メソッド徹底解説!ウィンドウサイズと配置を自在に制御する方法

    Pythonでは、標準ライブラリ「Tkinter」を使うことで、手軽にGUIアプリケーションを作成できます。TkinterにはGUI開発に役立つ多数のメソッドが用意されていますが、その中でもgeometry()メソッドは最も基本となる重要なメソッドの一つです。このメソッドを使うことで、作成するウィンドウのサイズや表示位置など、画面レイアウトに関するさまざまな属性を自由に設定できます。 geometry()メソッドとは geometry()メソッドは、ウィンドウの大きさを「幅x高さ」という形式の文字列で指定するためのメソッドです。サイズはピクセル単位で制御されるため、レイアウトを細かく調整したい