Python 中带字符串的二进制文件
binary with string in Python
我是 python 初学者。
我写了这段代码,但它无法成功运行。
有人能理解为什么吗?
if __name__ == '__main__':
# if "pro" begin with "test", delete "test" from "pro".
pro = "001001111010010101001"
test = "0010"
if pro.startswith(test):
pro = pro.lstrip(test)
# My ideal -> pro == "01111010010101001"
print pro
print pro
此代码不输出任何内容。
lstrip(chars)
returns 字符串的副本,其中所有字符都已从字符串的开头删除。因此,如果您传递包含 1,0 的 test
,它会删除 pro
中的所有字符(pro
仅包含 0,1)。
>>> pro = pro.lstrip('10')
>>> pro
''
相反,您可以只使用切片 :
>>> if pro.startswith(test):
... pro=pro[len(test):]
...
>>> pro
'01111010010101001'
str.lstrip()
删除 所有字符 出现在您给它的 字符集 中。由于您在该集合中同时提供了 0
和 1
,并且该字符串仅由 个零和一个组成,因此您删除了整个字符串。
换句话说,str.lstrip()
不会 删除前缀。它一次删除一个字符,前提是该字符在参数中命名:
>>> '0123'.lstrip('0')
'123'
>>> '0123'.lstrip('10')
'23'
>>> '0123'.lstrip('20')
'123'
改为删除前 len(test)
个字符:
pro = pro[len(test):]
这是因为 lstrip 从给定的集合中删除了所有左侧字符,因此删除了所有内容:
我认为你需要:
pro = pro.startswith(test) and pro[len(test):] or pro
这将从 pro
的开头删除 test
(如果存在)。
额外的..这也行得通:
>>> pro = "001001111010010101001"
>>> test = "0010"
>>> if pro.startswith(test):
pro = pro.partition(test)[-1]
print pro
01111010010101001
我是 python 初学者。 我写了这段代码,但它无法成功运行。 有人能理解为什么吗?
if __name__ == '__main__':
# if "pro" begin with "test", delete "test" from "pro".
pro = "001001111010010101001"
test = "0010"
if pro.startswith(test):
pro = pro.lstrip(test)
# My ideal -> pro == "01111010010101001"
print pro
print pro
此代码不输出任何内容。
lstrip(chars)
returns 字符串的副本,其中所有字符都已从字符串的开头删除。因此,如果您传递包含 1,0 的 test
,它会删除 pro
中的所有字符(pro
仅包含 0,1)。
>>> pro = pro.lstrip('10')
>>> pro
''
相反,您可以只使用切片 :
>>> if pro.startswith(test):
... pro=pro[len(test):]
...
>>> pro
'01111010010101001'
str.lstrip()
删除 所有字符 出现在您给它的 字符集 中。由于您在该集合中同时提供了 0
和 1
,并且该字符串仅由 个零和一个组成,因此您删除了整个字符串。
换句话说,str.lstrip()
不会 删除前缀。它一次删除一个字符,前提是该字符在参数中命名:
>>> '0123'.lstrip('0')
'123'
>>> '0123'.lstrip('10')
'23'
>>> '0123'.lstrip('20')
'123'
改为删除前 len(test)
个字符:
pro = pro[len(test):]
这是因为 lstrip 从给定的集合中删除了所有左侧字符,因此删除了所有内容:
我认为你需要:
pro = pro.startswith(test) and pro[len(test):] or pro
这将从 pro
的开头删除 test
(如果存在)。
额外的..这也行得通:
>>> pro = "001001111010010101001"
>>> test = "0010"
>>> if pro.startswith(test):
pro = pro.partition(test)[-1]
print pro
01111010010101001