私はPythonで整数の最小値と最大値を探しています。例えば、Javaでは、Integer.MIN_VALUE
とInteger.MAX_VALUE
があります。このようなものはpythonにありますか?
Python 3では、この質問は当てはまりません。普通のint
型は無制限です。
しかし、実際にはマシンのWord sizeを探しているかもしれません。 Python 3ではまだsys.maxsize
として利用できます。
Python 2では、プレーンなint
値の最大値はsys.maxint
として利用可能です。
>>> sys.maxint
9223372036854775807
here のように、-sys.maxint - 1
を使って最小値を計算できます。
この値を超えると、Pythonはプレーン整数から長整数にシームレスに切り替えます。だから、ほとんどの場合、あなたはそれを知る必要はありません。
sys.maxint 定数はPython 3.0以降で削除されました。代わりに sys.maxsize を使用してください。
整数
- PEP 237:基本的に、長い間intに改名されました。つまり、intという名前の組み込み整数型は1つだけです。しかし、それは主に古いlong型のように振る舞います。
- PEP 238:1/2のような式はfloatを返します。切り捨て動作を取得するには1 // 2を使用します。 (後者の構文は、少なくともPython 2.2以降で、何年も前から存在していました。)
- Sys.maxint定数が削除されました。整数の値に制限がなくなったためです。ただし、sys.maxsizeは、実用的なリストまたは文字列インデックスよりも大きい整数として使用できます。これは実装の「自然な」整数サイズに準拠し、通常は同じプラットフォーム上の以前のリリースのsys.maxintと同じです(同じビルドオプションがあると仮定して)。
- 長整数のrepr()には末尾のLが含まれなくなったため、無条件にその文字を削除するコードでは、最後の桁が切り捨てられます。 (代わりにstr()を使ってください。)
- 8進数リテラルは、もはや0720の形式ではありません。代わりに0o720を使用してください。
他のものよりも大きい数が必要な場合は、次のものを使用できます。
float('inf')
同様に、他のものよりも小さい数
float('-inf')
これはpython 2と3の両方で動作します。
Pythonでは、整数を渡すと、固定長のint
表現から可変幅の long
表現に自動的に切り替わります。 sys.maxint
のいずれかです。31 - 1または263 - プラットフォームによっては1ここに追加されるL
に注意してください。
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
数値は数値リテラルによって、または組み込み関数と演算子の結果として作成されます。指定されていない整数リテラル(2進数、16進数、8進数を含む)は、プレーン整数として表現するには大きすぎる場合を除き、プレーン整数になります。その場合、ロング整数になります。
'L'
または'l'
接尾辞を持つ整数リテラルは長整数をもたらします('L'
は11のように見えるので1l
が推奨されます)。
Pythonは、その整数が数学的な整数であり、無制限であると見せかけることを非常に試みます。たとえば、 googol を簡単に計算できます。
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Python 3では、
import sys
max = sys.maxsize
min = -sys.maxsize -1
配列インデックスまたはリストインデックスの最大値(C/C++のsize_t
と同等)が必要な場合は、numpyを使用できます。
np.iinfo(np.intp).max
これはsys.maxsize
と同じですが、利点はインポートsysを必要としないことです。
あなたがマシン上でネイティブintにmaxが欲しいならば:
np.iinfo(np.intc).max
doc で他の利用可能な型を見ることができます。
フロートの場合はsys.float_info.max
を使うこともできます。
sys
モジュールを使うこと(python 3)
import sys
INT_MAX = sys.maxsize
INT_MIN = -sys.maxsize-1
print(INT_MAX,INT_MIN)
私はこのようなコマンドに大きく依存しています。
python -c 'import sys; print(sys.maxsize)'
返される最大整数値: 9223372036854775807
'sys'の詳細については、アクセスする必要があります。
次のように 'inf'を使用できます:import math bool_true = 0<math.inf bool_false = 0<-math.inf
参照: math —数学関数