pythonで整数の最小値と最大値を探しています。例えば、Javaでは、Integer.MIN_VALUE
とInteger.MAX_VALUE
があります。このようなものはpythonにありますか?
Python 3では、この質問は当てはまりません。plain int
型は unbounded です。
しかし、実際にはマシンの word size を探しているかもしれません。これはPython 3ではsys.maxsize
としてまだ利用可能です。
Python 2では sys.maxint
として int
系のプレーンな値の最大値が用意されています。
>>> sys.maxint
9223372036854775807
最小値は,こちらのように,-sys.maxint - 1
で計算できます.
この値を超えると、Pythonは平文整数から長文整数にシームレスに切り替わります。そのため、ほとんどの場合、この値を知る必要はありません。
sys.maxint定数はPython3.0以降で削除されました。
整数 を使うようになりました。
- PEP 237:基本的に long は int に改名されました。つまり、組み込みの積分型はintという名前のものが1つだけですが、 ほとんどが古いlong型と同じように振る舞います。 古いlong型と同じように動作します。
- PEP 238:1/2のような式はfloatを返します。1/2を使うと切り捨ての動作になります。(後者の構文は何年も前から存在しており、少なくともPython 2.0以降では 後者の構文は何年も前から存在しており、少なくともPython 2.2以降です)
- sys.maxint 定数は、もはや整数の値に制限がないため、削除されました。しかしながら、sys.maxsizeは 実用的なリストや文字列インデックスよりも大きな整数。に準拠しています。 実装の "自然な "整数サイズに準拠しており、典型的には sys.maxintと同じ 同じプラットフォームの以前のリリースでは、sys.maxintと同じです(同じビルドオプションを仮定しています)。 同じビルドオプションを仮定した場合)。)
- long整数のrepr()には末尾のLが含まれなくなったため、無条件にその文字を除去するコードは、代わりに最後の桁を切り落とします。 最後の桁を切り落とすことになります。(代わりに str() を使用してください。)
- 8進数のリテラルは0720という形式ではなくなり、代わりに0o720を使用します。
Pythonでは、整数はsys.maxint`という値を渡すと、固定サイズのint
表現から可変幅のlong
表現に自動的に切り替わりますが、これはプラットフォームによって231 - 1または263 - 1となります。ここでは L
が付加されていることに注意してください。
>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L
Pythonマニュアル](http://docs.python.org/library/stdtypes.html#typesnumeric)より。
数値は、数値リテラルや組み込み関数・演算子の結果として生成されます。装飾されていない整数リテラル(2進数、16進数、8進数を含む)は、それが示す値が大きすぎて平文整数として表現できない場合を除き、平文整数を生成します(その場合は長文整数を生成します)。接尾辞が
'L'
または'l'
の整数リテラルは長整数になります(1l
は 11 に似すぎているので'L'
が好ましい)。
Pythonは、その整数が数学的な整数であり、無制限であることを懸命に装っています。例えば、googolを簡単に計算することができます。
>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L