1. ホーム
  2. python

[解決済み] Python - absとfabsの比較

2022-09-13 12:39:53

質問

Pythonで、数の絶対値を見つけるための2つの類似した外観のメソッドがあることに気づきました。

まず

abs(-5)

第二

import math
math.fabs(-5)

これらの方法はどのように違うのでしょうか?

どのように解決するのですか?

math.fabs() は引数をfloatに変換します(変換できない場合は例外を投げます)。そして、絶対値を取り、その結果をfloatとして返す。

浮動小数点に加え abs() は整数や複素数も扱えます。その戻り値の型は引数の型に依存します。

In [7]: type(abs(-2))
Out[7]: int

In [8]: type(abs(-2.0))
Out[8]: float

In [9]: type(abs(3+4j))
Out[9]: float

In [10]: type(math.fabs(-2))
Out[10]: float

In [11]: type(math.fabs(-2.0))
Out[11]: float

In [12]: type(math.fabs(3+4j))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/npe/<ipython-input-12-8368761369da> in <module>()
----> 1 type(math.fabs(3+4j))

TypeError: can't convert complex to float