问题是我有一个整数变量(例如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
答案 0 :(得分:7)
L
不是数值的一部分。
相反,Python 2.x 中的,如Python解析器所理解的那样part of a integer literal - 它会产生long
值与int
值,如果没有后缀。 (Python会根据需要自动向上推广更大的整数文字到长值,在这种情况下L
是可选的。)
long
的 repr 也会以L
为后缀,其中int
值没有后缀。
使用long(anInt)
强制从int
到long
的显式转换。
Python 3 removes the "L" notation因为它有效地结合了long/int
(参考integer changes)。
答案 1 :(得分:4)
基本上,您希望将整数转换为long integer。这可以使用内置的long
:
>>> integer = 10150247729954
>>> long(integer)
10150247729954L
>>>