web-dev-qa-db-ja.com

int()とlong()の違い

int(x)long( x)Pythonで

私の理解:

  1. long()は常にlongを返します
  2. int()はintまたはlong(大きすぎる場合)を返します
  3. したがって、int()は、その値に基づいてint/longを動的に取得するのに十分です。

それで、上記(1)(2)(3)が正しくない場合を除いて、なぜlong()が必要なのですか? int()が仕事を終わらせるとき?すべての数値範囲でlong()をスキップすると、問題が発生しますか?


参照されているドキュメント:

class int(x = 0)

数値または文字列xから構築された整数オブジェクトを返すか、引数が指定されていない場合は0を返します。 xが数値の場合、単純整数、長整数、または浮動小数点数にすることができます。 xが浮動小数点の場合、変換はゼロに向かって切り捨てられます。引数が整数の範囲外の場合、関数は代わりに長いオブジェクトを返します。

class long(x = 0)

文字列または数値xから構築された長整数オブジェクトを返します。引数が文字列の場合、空白に埋め込まれている可能性のある任意のサイズの符号付き数値が含まれている必要があります。基本引数はint()の場合と同じように解釈され、xが文字列の場合にのみ指定できます。それ以外の場合、引数は単純整数、長整数、または浮動小数点数である可能性があり、同じ値の長整数が返されます。浮動小数点数の整数への変換は切り捨てられます(ゼロに向かって)。引数が指定されていない場合は、0Lを返します。


実験されたコード

number = int(number_string) # cast it to integer
print number, "\t", type(number)

number = long(number_string) # cast it to long
print number, "\t", type(number)
6
Srinath Ganesh

int:整数; Python 2.xのClongsと同等、Python 3.xの無制限の長さ

long:長さが制限されていない長整数。 Python 2.xにのみ存在します

したがって、python 3.x以降では、long()の代わりにint()を使用できます。

これがあなたの疑問を解消することを願っていますか?

6
AlphaBet