如何连接整数和字母,以便结果保持整数

时间:2014-02-09 21:34:54

标签: python string integer python-2.x

问题是我有一个整数变量(例如X = 123)需要与字符串连接(例如“L”)并仍然是“整数”。原因是我传递给api调用的id需要id为以下格式:

10150247729954L 

请注意,因为没有引号,所以它不是字符串。我假设它仍然是一个整数变量,因为它像sublime中的其他数字一样紫色。

例如,如何将此整数转换为所需的格式:

integer = 10150247729954 
desired_integer = 10150247729954L

这是我尝试过导致错误的原因:

 int('10150247881525L')
 ValueError: invalid literal for int() with base 10: '10150247881525L'

当我尝试通过API调用推送字符串时,我得到:

 TypeError: %d format: a number is required, not str

2 个答案:

答案 0 :(得分:7)

L 不是数值的一部分。

相反,Python 2.x 中的,如Python解析器所理解的那样part of a integer literal - 它会产生long值与int值,如果没有后缀。 (Python会根据需要自动向上推广更大的整数文字到长值,在这种情况下L是可选的。)

long repr 也会以L为后缀,其中int值没有后缀。

使用long(anInt)强制从intlong的显式转换。


Python 3 removes the "L" notation因为它有效地结合了long/int(参考integer changes)。

答案 1 :(得分:4)

基本上,您希望将整数转换为long integer。这可以使用内置的long

来完成
>>> integer = 10150247729954
>>> long(integer)
10150247729954L
>>>