Python 尾随 L 问题
我正在用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
。