web-dev-qa-db-ja.com

整数の最大値と最小値

私はPythonで整数の最小値と最大値を探しています。例えば、Javaでは、Integer.MIN_VALUEInteger.MAX_VALUEがあります。このようなものはpythonにありますか?

573
bdhar

Python 3

Python 3では、この質問は当てはまりません。普通のint型は無制限です。

しかし、実際にはマシンのWord sizeを探しているかもしれません。 Python 3ではまだsys.maxsizeとして利用できます。

Python 2

Python 2では、プレーンなint値の最大値はsys.maxintとして利用可能です。

>>> sys.maxint
9223372036854775807

here のように、-sys.maxint - 1を使って最小値を計算できます。

この値を超えると、Pythonはプレーン整数から長整数にシームレスに切り替えます。だから、ほとんどの場合、あなたはそれを知る必要はありません。

654
senderle

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を使用してください。

参照してください: https://docs.python.org/3/whatsnew/3.0.html

190
Akash Rana

他のものよりも大きい数が必要な場合は、次のものを使用できます。

float('inf')

同様に、他のものよりも小さい数

float('-inf')

これはpython 2と3の両方で動作します。

158
Melle

Pythonでは、整数を渡すと、固定長のint表現から可変幅の long 表現に自動的に切り替わります。 sys.maxint のいずれかです。31 - 1または263 - プラットフォームによっては1ここに追加されるLに注意してください。

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

Pythonのマニュアルから

数値は数値リテラルによって、または組み込み関数と演算子の結果として作成されます。指定されていない整数リテラル(2進数、16進数、8進数を含む)は、プレーン整数として表現するには大きすぎる場合を除き、プレーン整数になります。その場合、ロング整数になります。 'L'または'l'接尾辞を持つ整数リテラルは長整数をもたらします('L'は11のように見えるので1lが推奨されます)。

Pythonは、その整数が数学的な整数であり、無制限であると見せかけることを非常に試みます。たとえば、 googol を簡単に計算できます。

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
75
John Kugelman

Python 3では、

import sys
max = sys.maxsize
min = -sys.maxsize -1
25
netskink

配列インデックスまたはリストインデックスの最大値(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を使うこともできます。

2
Shital Shah

sysモジュールを使うこと(python 3)

import sys

INT_MAX = sys.maxsize  

INT_MIN = -sys.maxsize-1


print(INT_MAX,INT_MIN)
2
Deep Nirmal

私はこのようなコマンドに大きく依存しています。

python -c 'import sys; print(sys.maxsize)'

返される最大整数値: 9223372036854775807

'sys'の詳細については、アクセスする必要があります。

https://docs.python.org/3/library/sys.html

https://docs.python.org/3/library/sys.html#sys.maxsize

1
Wender

次のように 'inf'を使用できます:import math bool_true = 0<math.inf bool_false = 0<-math.inf

参照: math —数学関数

1
Nimbal Rahul