为什么不能strip删除这个字符串中的空格?

lin*_*ing 2 python

s = '?? ?'
print(len(s))
s = s.strip()
print(len(s))
Run Code Online (Sandbox Code Playgroud)

两者的输出都是“4”。似乎空格占用了 2 个字符,并且无法通过 strip() 函数删除。这是一个中文空格,不能被strip函数删除。

小智 6

这不是通常的 unicode 空间。你可以像这样删除它。

s = '?? ?'
print(len(s))
s = s.strip(u'\u200b').strip()
print(len(s))
Run Code Online (Sandbox Code Playgroud)


Dip*_*ami 5

strip 从字符串的两端删除空格。

>>> s = '?? ?'
>>> ord(s[-1])
8203
>>> ord(s[-2])
32
>>> ord(' ')
32
Run Code Online (Sandbox Code Playgroud)

这里的最后一个字符不是空格字符。倒数第二个字符是空格。