Python条带函数的奇怪行为

Aam*_*nan 4 python string strip

可能重复:
python str.strip奇怪的行为

我有以下代码:

st = '55000.0'
st = st.strip('.0')
print st
Run Code Online (Sandbox Code Playgroud)

当我执行时,它只打印,55但我希望它打印55000.我认为,dotstrip导致这就像我们平时escapeRegular Expression,所以我也尝试过st = st.strip('\.0'),但仍是给予同样的结果.任何想法为什么它不只是条纹.0和为什么所有零条纹?

dec*_*ion 8

你误解了strip() - 它从两端删除了任何指定的字符; 这里没有正则表达式的支持.

你要求它去掉两端.0两端,所以它确实 - 然后离开了55.

有关详细信息,请参阅官方String类文档.


And*_*ark 5

请参阅 的文档str.strip,重要的部分是:

chars参数不是前缀或后缀;相反,它的值的所有组合都会被删除:

>>> '   spacious   '.strip()  
'spacious'  
>>> 'www.example.com'.strip('cmowz.')  
'example'  
Run Code Online (Sandbox Code Playgroud)


Sco*_*t A 5

因为你告诉它去除所有句号和0,所以它一直上升到第一个非句号非0字符.

Strip使用字符列表,而不是它们的特定配置.

尝试这样的事情:

st.partition('.')[0]
Run Code Online (Sandbox Code Playgroud)