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

Pythonで非常に大きな数を処理する方法

Pythonでは、実行速度をほとんど気にすることなく、非常に大きな整数同士で直接算術演算を行うことができます。これは、Pythonが「bignum(多倍長整数)」と呼ばれる整数型を標準でサポートしており、桁数に上限のない任意精度の数値を扱えるためです。

Python 2.5以降では、この型は long として int 型とは別に定義されていましたが、インタプリタが状況に応じて自動的に適切な方を選択する仕組みになっていました。そのため、バージョン2.5以上であれば、通常どおり標準的な算術演算を記述するだけで、32ビット整数の範囲を超えた数値は自動的(かつ透過的に)多倍長整数へと変換されます。

なお、現在主流のPython 3では int 型自体が任意精度に統一されているため、意識することなくどんなに大きな整数でも同じように扱えます。

コード例

a = 182841384165841685416854134135
b = 135481653441354138548413384135
print(a - b)

出力結果

47359730724487546868440750000

上記のように、30桁を超える巨大な数値同士の減算でも、特別なライブラリや明示的な変換処理を行わずに、ごく普通のコードで正確な計算結果を得ることができます。

  1. Pythonで例外の詳細情報(種類・メッセージ・行番号)を取得する方法

    Pythonの例外情報を取得するとはPythonのコードが例外(Exception)をスローした場合、それを捕捉して、例外の種類、エラーメッセージ、トレースバックを表示できます。さらに、例外が発生したファイル名や行番号といった情報もPythonスクリプト内で取得することが可能です。sys.exc_info()で取得できる3つの要素例外発生時には、type(型)、value(値)、traceback(トレースバック)という3つのパラメータからエラーの詳細を把握できます。type: 発生した例外の種類(クラス)を示します。value: エラーメッセージそのものが格納されています。traceback

  2. PythonでKeyError例外をキャッチする方法をわかりやすく解説

    Pythonでは、辞書(dict)に存在しないキーを使って値へアクセスしようとすると、KeyError例外が発生します。この記事では、try-except文を使ってKeyErrorをキャッチし、例外の種類や詳細情報を確認する方法を解説します。 KeyErrorが発生する仕組み 次のコードは、辞書に存在しないキー c で値を取得しようとしているため、KeyErrorが発生します。sys.exc_info() を使うと、発生した例外の型などの情報を取得できます。 import sys try: s = {a: 5, b: 7}[c] except: print(sys.exc_i