python - 为什么Python在找不到子字符串时会抛出错误?

原文 标签 python string

这背后的设计思想是什么?
对我来说,做这样的事情更容易

if string.index(substring) > -1:
    # do stuff

而不是试图捕获异常。如果找不到substring,至少程序不会中断。
有人告诉我“返回-1是一个坏模式”。为什么?
检查子串的方法是什么?

最佳答案

str.index()引发了一个异常;您可能在考虑str.find() method而不是:

if string.find(substring) > -1:

str.index() documentation明确说明:
类似于find(),但在未找到子字符串时升高ValueError
但是,测试子字符串成员资格的正确方法是使用in
if substring in string:

相关文章:

html - 带有HTML实体的XSLT字符串 - 如何将其呈现为HTML?

python - Python / wxPython:如何在主框架的第二个框架中显示文本

python - 熊猫用df.apply结果替换原始列空值

python - 如何从Python的原始输入中提取某些数字?

python - 标记文本以在Python中进行搜索

mysql - 存储和搜索字符串mysql的最佳实践

python - 导入的模块不正确

python - 是否所有namedtuple都应放在单独的文件中?

java - 如何根据光标位置分割线?

java - Java字符串和正则表达式匹配