Pythonのmath.ldexp()関数の使い方を徹底解説
本記事では、Pythonの標準ライブラリ「math」に含まれるldexp()関数の使い方について詳しく解説します。数値計算を効率的に行いたい場面で役立つ関数なので、ぜひ参考にしてください。
ldexp()関数とは
ldexp(first, second)は、正負どちらの有効な数値でも引数として受け取ることができ、first × 2^second(第1引数に、第2引数を指数とする2の累乗を掛けた値)を返します。
それでは、具体的な使用例を見ていきましょう。
使用例
# mathライブラリをインポート import math # ldexp関数を使用 print(math.ldexp(1, 4)) print(math.ldexp(5, -4)) print(math.ldexp(-3, -1))
上記のコードを実行すると、以下のような結果が出力されます。
実行結果
16.0 0.3125 -1.5
このように、math.ldexp(1, 4)は「1 × 2⁴ = 16.0」、math.ldexp(5, -4)は「5 × 2⁻⁴ = 0.3125」、math.ldexp(-3, -1)は「-3 × 2⁻¹ = -1.5」という計算結果が得られます。負の指数を指定することで、小数値も簡単に求められるのがポイントです。
エラーが発生するケース
ldexp()関数に数値以外の引数を渡すと、エラーが発生します。以下の例を見てみましょう。
例
# mathライブラリをインポート import math # ldexp関数を使用 print(math.ldexp(1, '4'))
上記のコードを実行すると、次のようなエラーが出力されます。
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in 3 4 # using the function ldexp ----> 5 print(math.ldexp(1, '4')) TypeError: Expected an int as second argument to ldexp.
このように、第2引数には整数(int型)を渡す必要があります。文字列など数値以外の値を指定するとTypeErrorが発生するため、引数のデータ型には注意しましょう。
まとめ
本記事では、Pythonのmathライブラリに含まれるldexp()関数の基本的な使い方と、エラーが発生するケースについて解説しました。「第1引数 × 2の第2引数乗」というシンプルな計算を行う関数ですが、浮動小数点数の操作やビット演算に関連した処理において活用できます。ぜひ実際にコードを書いて、動作を確認してみてください。
-
Pythonのissubset()関数とは?部分集合の判定方法を実例付きで解説
本記事では、Python標準ライブラリに用意されているissubset()関数の仕組みと使い方について詳しく解説します。 issubset()メソッドは、あるセット(集合)のすべての要素が、引数として渡した別のセットにも含まれている場合にブール値のTrueを返し、1つでも含まれていない要素があればFalseを返します。 下の図では、BはAの部分集合です。もしAとBが同一のセットであれば、両者は互いに部分集合の関係にあるといえます。つまり、両方のセットがまったく同じ要素を持っているということを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値
-
Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法
この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print