Python3和Python2中int和long区别?

参考回答

在 Python 2 中,intlong 是两种不同的数据类型:
int 表示的是一个普通的整数类型,通常是固定大小的(平台相关)。
long 表示的是一个可以存储任意大小整数的类型,使用 L 后缀表示,如 123456789L

而在 Python 3 中,int 类型统一了,原本在 Python 2 中的 intlong 被合并为一种类型 int,并且可以表示任意大小的整数,不再需要区分 intlong。因此,Python 3 不再使用 long 类型。

详细讲解与拓展

  1. Python 2 中的 intlong
    • int 类型: 在 Python 2 中,int 是平台相关的,通常是 32 位或 64 位整数。例如,在 32 位系统中,int 的最大值通常是 2^31 - 1(即 2147483647)。
      x = 42  # 一个普通的整数
      
      Python
    • long 类型: 如果数字超出了 int 的范围,Python 2 会自动使用 long 类型,long 可以存储任意大小的整数,理论上只有内存大小限制。
      • long 类型需要加上 L 后缀,例如 123456789L
        y = 123456789123456789L  # 一个长整数
        
        Python
  2. Python 3 中的 int
    • 在 Python 3 中,int 类型被修改为可以表示任意大小的整数。无论整数的大小是多少,int 都能够处理,不再有 long 类型。也就是说,Python 3 中的 int 就是 Python 2 中的 long 类型,直接支持大整数。
    • 没有 long 类型: 在 Python 3 中,数字 123456789123456789 会自动被视为一个普通的 int 类型,而不需要加上 L 后缀。
    x = 123456789123456789  # Python 3 中的普通整数
    
    Python
  3. 总结:
    • Python 2: intlong 是两种不同的类型,int 是固定大小的整数,long 是可变大小的整数。
    • Python 3: int 被统一为一种类型,能够表示任意大小的整数,不再区分 intlong,因此不存在 long 类型。

发表评论

后才能评论