这是Python 2.7中的错误吗?

Har*_*ooo 4 python string

试图从二进制数的左端去掉"0b1".

以下代码导致剥离所有二进制对象.(不好)

>>> bbn = '0b1000101110100010111010001' #converted bin(2**24+**2^24/11)
>>> aan=bbn.lstrip("0b1")  #Try stripping all left-end junk at once.
>>> print aan    #oops all gone.
''
Run Code Online (Sandbox Code Playgroud)

所以我分两步完成了.lstrip():

>>> bbn = '0b1000101110100010111010001' #    Same fraction expqansion
>>> aan=bbn.lstrip("0b")# Had done this before.
>>> print aan    #Extra "1" still there.
'1000101110100010111010001'
>>> aan=aan.lstrip("1")#  If at first you don't succeed...
>>> print aan    #YES!
'000101110100010111010001'
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

再次感谢您通过一个简单的步骤解决此问题.(见我之前的问题)

Joh*_*hin 13

strip系列将arg视为要删除的一字符.默认设置为"所有空白字符".

你要:

if strg.startswith("0b1"):
   strg = strg[3:]
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 12

否.剥离会删除传递的序列中的所有字符,而不仅仅是文字序列.如果要删除固定长度,请剪切字符串.


AXO*_*AXO 5

在 Python 3.9 中,您可以使用bbn.removeprefix('0b1').

(实际上,这个问题已作为PEP 616 中基本原理的一部分被提及。)