Python 十六进制数的lstrip,如何?
我一直在使用Python将一个数字转换为十六进制格式,并使用Python 十六进制数的lstrip,如何?,python,Python,我一直在使用Python将一个数字转换为十六进制格式,并使用str.lstrip去掉每个数字的'Ox'前缀;比如: >>> data='0' >>> data '0' >>> data=str(hex(int(data))) >>> data '0x0' >>> data=data.lstrip("0x") >>> data '' 我在这里遇到的问题是,它不是打印'0',而是在应用lst
str.lstrip
去掉每个数字的'Ox'
前缀;比如:
>>> data='0'
>>> data
'0'
>>> data=str(hex(int(data)))
>>> data
'0x0'
>>> data=data.lstrip("0x")
>>> data
''
我在这里遇到的问题是,它不是打印
'0'
,而是在应用lstrip
方法后打印'
。我的问题是,如何才能使它打印出'0'
,而不是空字符串'
?我需要在str
类型中使用它,因为我会将该数据存储在一个文件中。如果您知道0x
前缀在那里,可以使用切片将其删除:
>>> "0xdeadbeef"[2:]
'deadbeef'
或者,您可以使用字符串格式运算符而不是hex()
:
或者使用格式()
:
如果您知道有
0x
前缀,可以使用切片将其删除:
>>> "0xdeadbeef"[2:]
'deadbeef'
或者,您可以使用字符串格式运算符而不是hex()
:
或者使用格式()
:
请注意,
lstrip(“0x”)
不会(仅仅)剥离'0x'
,它会剥离所有0
s和x
s,直到最左边的字符,该字符既不是0
也不是x
。请注意,lstrip(“0x”)
不会(仅仅)剥离'0x'
,它将所有0
s和x
s剥离到既不是0
也不是x
的最左边的字符。您还可以概括切片解决方案:lcut=lambda s,前缀:s[len(prefix):]if s.startswith(prefix)else s
-我想知道为什么这不在标准库中。或者是它,我错过了它?您还可以概括切片解决方案:lcut=lambda s,前缀:s[len(prefix):]如果s.startswith(prefix)else s
——我想知道为什么标准库中没有这个。还是我错过了?
>>> format(3735928559, "x")
'deadbeef'