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

Pythonで絶対値を取得する方法:abs()関数の使い方をわかりやすく解説

Pythonのabs()メソッドは、数値の絶対値を返す組み込み関数です。絶対値とは、その数値が数直線上の0からどれだけ離れているかを表す値であり、負の数は正の数に変換され、正の数はそのままの値が返されます。たとえば、abs(-9)9を、abs(2)2を返します。

絶対値は数学的な計算のさまざまな場面で活用されます。特に、距離の計算などでは欠かせない概念です。本記事では、Pythonのabs()メソッドの基本的な使い方から、実践的なコード例までを詳しく解説していきます。

絶対値とは何か

数学において、絶対値とは「ある数が数直線上の0からどれだけ離れているか」を表す値です。元の数が正でも負でも、絶対値は必ず正の数になります。

たとえば、5の絶対値は5であり、-5の絶対値も5です。これは、5も-5もどちらも数直線上で0から5つ分離れた位置にあるためです。

-5-4-3-2-1012345

上記の数直線を見ると、-5も5も、それぞれ0から5つ分の距離にあることがわかります。

絶対値は数学や物理学における重要な概念であり、これらの分野で幅広く応用されています。また、データ分析の現場でも頻繁に利用される考え方です。

Pythonのabs()メソッドの基本構文

Pythonのabs()メソッドは、引数に渡した数値の絶対値を計算して返します。このメソッドが受け取るパラメータは1つだけで、絶対値を求めたい数値を指定します。

構文

abs(value)

abs()メソッドは、渡された値に応じて整数(int)または浮動小数点数(float)を返します。

  • abs(-9)9 を返す
  • abs(-2.2)2.2 を返す

戻り値が2.2のような浮動小数点数になるのは、小数点が含まれているためです。abs()は整数と浮動小数点数の両方を受け付けられるため、事前に型変換を行う必要はありません。

なお、0や正の数を渡した場合、abs()は渡した値をそのまま返します。これは、正の数や0はもともと負ではないためです。

それでは、実際のコード例を使ってabs()メソッドの動作を確認してみましょう。

abs()メソッドの実例:スピード違反の判定プログラム

ここでは、地元の警察署向けに、ドライバーがスピード違反切符の対象になるかどうかを判定するアプリを作成する場面を想定します。

この道路では、ドライバーは平均的な走行速度とほぼ同じ速度で走ることが求められています。過去にこの道路で事故が多発しており、その原因の一つがドライバー間の速度差だったためです。

そこで、「平均速度より10マイル(約16km)以上速い、または遅い走行は危険」とみなし、その範囲を超えたドライバーには切符を発行するルールとします。

速度差の計算

まず、ドライバーの速度に基づいて切符が必要かどうかを判定するプログラムを作成します。

average_speed = 50
current_speed = 38

difference_between_average_and_current_speed = average_speed - current_speed

absolute_value = abs(difference_between_average_and_current_speed)

print(absolute_value)

このコードを実行すると、次の出力が得られます。

12

コードの内容を順番に見ていきましょう。

  • 1行目で、道路上の車の平均速度(50マイル/約80km)を格納する変数average_speedを宣言しています。
  • 2行目で、特定のドライバーの現在速度(38マイル/約61km)を格納する変数current_speedを宣言しています。
  • 3行目で、平均速度と現在速度の差を計算しています。
  • 4行目で、その差に対してabs()メソッドを適用し、絶対値を取得しています。

厳密に言えば、ドライバーの速度と平均速度の差は-12マイル(約19km)です。しかし、私たちが知りたいのは「差がどれだけあるか」という距離的な情報だけです。そこでabs()を使って値を絶対値に変換することで、プログラムは12という結果を返しました。

メッセージの表示

次に、ドライバーが切符の対象となる場合にメッセージを表示できるよう、if文を追加してみましょう。

print("Speed Difference: " + str(absolute_value))

if absolute_value > 10:
    print("This driver is exceeding the speed limit. Write them a ticket.")
else:
    print("This driver is not exceeding the speed limit.")

このコードでは、まずドライバーの速度差をコンソールに出力します。続いてif文で、速度差が10を超えているかどうかを判定します。制限速度超過の場合と範囲内の場合で、異なるメッセージが出力される仕組みです。

abs()を使った距離計算の例

絶対値は、距離の計算でもよく使われます。もう一つ実用的な例を見てみましょう。

家から20マイル(約32km)離れた目的地に向かおうとしたところ、うっかり31マイルも走ってしまったとします。

目的地まであと何マイル残っているかを単純に計算すると、結果は負の数になってしまいます。このような場合に、abs()を使えば負の数を正の数に変換できます。

miles_from_home = 20
travelled = 31

miles_left = miles_from_home - travelled

print(abs(miles_left))

このコードを実行すると、次の出力が得られます。

11

もしabs()を使わなければ、20と31の差は-11であるため、プログラムは-11を返していたはずです。しかしabs()を使用することで、絶対値である11が返されました。

まとめ

Pythonのabs()メソッドを使えば、整数や浮動小数点数の絶対値を簡単に取得できます。特に、2つの値の「差」を知りたい場合に非常に便利な関数です。

本記事では、abs()の基本的な使い方に加え、スピード違反の判定プログラムと距離計算の2つの実例を通じて、その挙動を解説しました。日常的なプログラミングでも活用シーンが多いので、ぜひ使いこなせるようにしておきましょう。

  1. Pythonインタープリターとは?仕組みと初心者向けオンライン環境を徹底解説

    Pythonは学びやすいプログラミング言語として知られています。その理由のひとつが、自分のマシンに正しいバージョンのPythonをインストールしなくても、オンラインで利用できるPythonインタープリターが数多く存在する点です。本記事では、Pythonインタープリターの仕組みについて解説し、初心者にも使いやすい人気のオンラインインタープリターをご紹介します。 Pythonプログラムはどのように実行されるのか? PythonはJavaと同様に、純粋なインタプリタ言語ともコンパイラ言語とも分類できず、両方の性質を併せ持っています。 ここでいう「コンパイル」とは、特定のプラットフォームに依存し

  2. Pythonでの数値精度処理の基本:trunc・ceil・floor・round関数の使い方

    Pythonでは、浮動小数点数(小数)の精度を扱うためのさまざまな関数が用意されています。精度処理のための関数の多くはmathモジュールに定義されているため、これらを使うには、まずmathモジュールを現在の名前空間にインポートする必要があります。 import math ここからは、精度処理に役立つ主な関数を順番に見ていきましょう。 trunc()関数:小数部分を切り捨てる trunc()メソッドは、浮動小数点数から小数部分をすべて取り除き、整数部分だけを返します。「切り捨て」を行いたい場合に便利な関数です。 ceil()関数:天井値(切り上げ)を求める ceil()メソッドは、数値の「天