【问题标题】:Assign and print Long Variable in python在python中分配和打印长变量
【发布时间】:2015-02-22 07:46:54
【问题描述】:

我是 python 新手。我的要求之一是处理长值。问题是我不知道如何分配长值。这个问题可能很傻。但我刚刚开始学习这门语言.我看过一个博客,我尝试过这样的事情:

# Long program in Python
x=1
y = long(x)
print(type(y))

但我收到这样的错误:

Traceback (most recent call last):                                
File "main.py", line 4, in <module>                             
y = long(x)                                                   
NameError: name 'long' is not defined 

谁能帮我实现这个目标?

【问题讨论】:

    标签: python django python-2.7 python-3.x web


    【解决方案1】:

    Python 3 不再支持long() 函数。它只有一种内置的整数类型,名为int;但它的行为主要类似于旧的 long 类型。所以你只需要在python-3.x中使用int()内置函数即可。

    有关更多信息,这里还有在 python-3.x 中输入 integer 的完整更改列表:

    • PEP 0237:本质上,早就重命名为 int。也就是说,只有一种内置的整数类型,名为 int;但它的行为主要类似于旧的 long 类型。

    • PEP 0238:像1/2 这样的表达式返回一个浮点数。使用 1//2 获取截断行为。 (后一种语法已经存在多年,至少从 Python 2.2 开始。)

    • 删除了sys.maxint 常量,因为整数的值不再有限制。但是,sys.maxsize 可以用作大于任何实际列表或字符串索引的整数。它符合实现的“自然”整数大小,通常与同一平台上先前版本中的sys.maxint 相同(假设相同的构建选项)。

    • 长整数的repr() 不再包含结尾的L,因此无条件剥离该字符的代码将截去最后一个数字。 (改用str()。)

    • 八进制文字不再是0720 的形式;请改用0o720

    【讨论】:

      【解决方案2】:

      忘记 longintlL 后缀。如有必要,Python 2.7 会将int 升级为long。并且所有整数在 Python 3 中都是“长”的(类型被重命名为 int)。

      假设整数在 Python 中具有无限精度。

      要在 Python 中分配和打印大整数,只需分配并打印它:

      x = 2**100
      print(x) # -> 1267650600228229401496703205376
      

      它适用于 Python 2 和 3。结果是一样的。

      【讨论】:

        【解决方案3】:

        Python 2.7.13 可以工作。

        x=1
        y = long(x)
        type(y) 
        <type 'long'>
        

        【讨论】:

          【解决方案4】:

          引用diveintopython3:

          Python 2 有单独的 int 和 long 类型。 int 数据类型是 受限于 sys.maxint,它因平台而异,但通常为 2^32-1。 Python 3 只有一种整数类型,其行为与旧的很相似 Python 2 中的 long 类型。有关详细信息,请参阅 pep 237。

          【讨论】:

            【解决方案5】:

            Python 解释器根据变量的数据类型分配内存。因此,通过为变量分配不同的数据类型,可以存储整数、字符串和长整数。

            >>> a = "Hello"
            >>> b = 123
            >>> c = 123.0
            >>> d = "a"
            >>> type(a)
            <type 'str'>
            >>> type(c) 
            <type 'float'>
            

            对于长类型,可以在值中附加“l”或“L”,建议使用大写“L”。 Python 显示带有大写 L 的长整数

            >>> e = 1234L
            >>> type(e)
            <type 'long'>
            >>> f=1234567891223341221 
            >>> f
            1234567891223341221L
            

            对于变量“f”,在显示值时解释器已经附加了“L”的值。

            正如 Kasra 所提到的,在 Python 2.x 中,您可以使用 long() 对变量类型进行类型转换,但 Python 3 不再支持这一点。这不是必需的,因为 Python 解释器通常会注意值的变化,除非您想要明确地做到这一点

            >>> b = 1234
            >>> type(b)
            <type 'int'>
            >>> long(b)
            1234L
            

            【讨论】:

              【解决方案6】:

              您无需在 python 中将变量定义为“long”。 Python 会默认处理它

              例如:

              >>> x = 1243254675876586798
              
              >>> type(x)
              
              <type 'long'>
              

              【讨论】:

              • 希望这会有所帮助.. :)
              猜你喜欢
              • 2014-04-19
              • 1970-01-01
              • 2012-12-12
              • 2015-01-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-01-18
              相关资源
              最近更新 更多