ValueError:在 Python 中找不到子字符串

ValueError:在 Python 中找不到子字符串

ValueError: substring not found in Python

当我们将字符串中不存在的值传递给str.index()方法时,会出现 Python“ValueError: substring not found”。要解决错误,请改用find()方法,例如my_str.find('z'),或使用try/except块处理错误。

未找到 valueerror 子字符串

下面是错误如何发生的示例。

主程序
my_str = 'apple' # ⛔️ ValueError: substring not found idx = my_str.index('z')

我们传递给该index方法的子字符串不包含在字符串中,这导致了ValueError.

解决此问题的一种方法是改用该str.find()方法。

主程序
my_str = 'apple' idx = my_str.find('z') print(idx) # 👉️ -1

str.find方法返回字符串中提供的子字符串第一次出现的索引。

-1如果在字符串中找不到子字符串,则该方法返回。

index()或者,您可以在调用该方法之前检查字符串中是否存在子字符串。

主程序
my_str = 'apple' if 'z' in my_str: idx = my_str.index('z') print(idx) else: # 👇️ this runs print('substring is not in string')

in 运算符
测试成员资格

例如,如果是 的成员,则
x in s计算为 ,否则计算为TruexsFalse

str.index
方法返回字符串中提供的子字符串第一次出现的索引

ValueError如果在字符串中找不到子字符串,则该方法会引发 a 。

您还可以使用try/except块来处理在字符串中找不到子字符串的情况。

主程序
my_str = 'apple' try: idx = my_str.index('z') print(idx) except ValueError: # 👇️ this runs print('substring is not in string')

index()我们在字符串上调用该方法,如果ValueError引发 a,
except则运行该块。

您也可以使用单行if/else语句。

主程序
my_str = 'apple' result_1 = my_str.index('z') if 'z' in my_str else None print(result_1) # 👉️ None result_2 = my_str.index('a') if 'a' in my_str else None print(result_2) # 👉️ 0

如果字符串中存在子字符串,则返回
index()使用子字符串调用方法的结果,否则返回None

结论

当我们将字符串中不存在的值传递给str.index()方法时,会出现 Python“ValueError: substring not found”。要解决错误,请改用find()方法,例如my_str.find('z'),或使用try/except块处理错误。

发表评论