在python中分配和打印长变量

时间:2014-12-24 06:45:06

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

我是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 

任何人都可以帮助我实现这个目标吗?

6 个答案:

答案 0 :(得分:4)

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

此处有关更多信息,请参阅python-3.x中integer类型的完整变更列表:

  • PEP 0237:基本上,长期重命名为int。也就是说,只有一个内置的整数类型,名为int;但它的行为大多像旧的长型。

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

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

  • 长整数的repr()不再包含尾随L,因此无条件地删除该字符的代码将切掉最后一位数字。 (请改用str()。)

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

答案 1 :(得分:1)

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

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

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

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

它适用于Python 2和3.结果是相同的。

答案 2 :(得分:0)

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

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

对于特定于长类型,您可以附加&#34; l&#34;或&#34; L&#34;在价值,帽子&#34; L&#34;被推荐。蟒蛇 显示带有大写L

的长整数
>>> e = 1234L
>>> type(e)
<type 'long'>
>>> f=1234567891223341221 
>>> f
1234567891223341221L

对于变量&#34; f&#34;,在显示值时,解释器附加了&#34; L&#34;有价值。

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

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

答案 3 :(得分:0)

引自diveintopython3

  

Python 2有int和long的单独类型。 int数据类型是   受sys.maxint的限制,该平台因平台而异,但通常为2 ^ 32-1。   Python 3只有一个整数类型,其行为大致类似于旧的   来自Python 2的long类型。有关详细信息,请参阅第237页。

答案 4 :(得分:0)

Python 2.7.13它可以工作。

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

答案 5 :(得分:-1)

你不需要在python中将变量定义为'long'。 Python默认会处理它

例如:

>>> x = 1243254675876586798

>>> type(x)

<type 'long'>