Python 尾随 L 问题

27 投票
5 回答
33052 浏览
提问于 2025-04-16 17:09

我正在用Python编写一些脚本,来对嵌入式系统中特定内存位置(32位地址)进行操作。

在我把这些地址转换成字符串、整数和十六进制值时,常常会出现一个多余的L。这真的很麻烦,比如下面这段看起来没问题的代码就无法正常工作:

int(hex(4220963601))

还有这段:

int('0xfb96cb11L',16)

有没有人知道怎么避免这个问题呢?

到目前为止,我想出了一个方法来去掉字符串末尾的L,但这个方法看起来不太优雅:

if longNum[-1] == "L":
   longNum = longNum[:-1]

5 个回答

3

可以考虑使用 rstrip 这个方法。比如说:

result.rstrip("L")
13

对这些值使用 str() 函数时,最后的 'L' 应该会被去掉。

24

如果你使用下面的代码把数字转换成十六进制

 "%x" % 4220963601

那么结果中既不会有 0x 这个前缀,也不会有结尾的 L

撰写回答