从 Yandex.Lyceum 解决问题时,我遇到了一个奇怪的问题。事实是,当尝试使用内置的 rstrip() 方法剪切字符串“nikita_nikitin@untitled.py”时,结果并不完全正确(从我的角度来看)。执行以下段落时:
print('nikita_nikitin@untitled.py'.rstrip('@untitled.py'))
输出是一个字符串
nikita_nik
而输出字符串“nikita_nikitin”是预期的。
我还注意到以下命令更正确地工作:
print('nikita_nikitin9@untitled.py'.rstrip('@untitled.py'))
print('nikita_nikitin@untitled.py'.rstrip('itin@untitled.py'))
在输出中我们得到:
nikita_nikitin9
nikita_nik
仅在 Python 3.7 中作为 IDE - PyCharm 进行检查。
对此,问题是:
解释器的这种行为的原因是什么,这个问题是如何解释的?
该方法的文档
str.rstrip([chars])说:免费翻译(部分):
简而言之,所有字符都将被删除,直到第一个不合适的字符。
在您的示例中,不属于集合的末尾的第一个字符
@untitled.py是k. 其他所有内容都将被删除。