【问题标题】:Difference between int() and long()int() 和 long() 的区别
【发布时间】:2017-11-12 11:43:08
【问题描述】:

int(x)long(x)在python中有什么区别

我的理解:

  1. long() 将始终返回 long
  2. int() 将返回一个 int 或 long(如果它太大)
  3. 因此 int() 足以根据其值动态获取 int/long

所以除非上面的(1)(2)(3)不正确,为什么还需要long()? int() 什么时候完成工作? 跳过所有数字范围的 long() 会伤害我吗?


参考文档:

类 int(x=0)

返回由数字或字符串 x 构造的整数对象,或 如果没有给出参数,则返回 0。如果 x 是一个数字,它可以是一个 普通整数、长整数或浮点数。如果 x 是 浮点,转换截断为零。如果论据 超出整数范围,函数返回一个长对象 而是。

类长(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)

【问题讨论】:

  • long 将结果强制为 long int(扩展精度),无论大小。所以int(1)long(1) 不一样。在 Python 3 中,区别更多的是内部的,但在 Python 2 中,当您显示数字时,差异是显而易见的。
  • 有趣的是,int 值在溢出时会自动更改为 long...pastebin.com/5PeprCEi
  • 查看python.org/dev/peps/pep-0237 了解一些历史(但请注意,那里提出的内容与实际实施的内容不完全匹配)。选择曾经很重要,但没有理由关心自 Python 2.3 以来intlong 之间的区别。
  • @TomKarzes:在 Python 3 中根本没有真正的区别,无论是内部的还是其他的。 Python 3 int 实现中没有隐藏优化的“short” int 类型:一切都是“long” int。
  • 那么3+版本就没有long了?

标签: python python-2.6


【解决方案1】:

int:整数;相当于 Python 2.x 中的 C long,Python 3.x 中的长度不受限制

long:长度不限的长整数;仅存在于 Python 2.x 中

因此,在 python 3.x 及更高版本中,您可以使用 int() 代替 long()

【讨论】:

    猜你喜欢
    • 2020-09-03
    • 1970-01-01
    • 2017-09-10
    • 2010-12-27
    • 2011-03-19
    • 1970-01-01
    • 2022-01-21
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多