Python之ValueError: substring not found
这个错误通常出现在尝试在字符串中查找一个子字符串,但该子字符串不存在时。例如,如果你在Python中使用
str.find()
或
str.index()
方法,如果找不到子字符串,它们会返回
-1
,而如果你尝试将
-1
当作索引使用,就会引发
ValueError
。
以下是一个可能出现该错误的代码示例:
string = "Hello, world!"
substring = "substring"
position = string.find(substring)
if position != -1:
print("子字符串位于位置", position)
else:
print("子字符串未找到")
这段代码会尝试在 string
中查找 substring
。如果找到,就打印出子字符串的位置;否则,打印出 “子字符串未找到”。但如果 substring
不在 string
中,position
会是 -1
,在这种情况下,下一行代码会尝试使用 -1
当作索引,从而引发 ValueError
。
解决这个问题的一个办法是检查 substring
是否在 string
中,如下所示:
string = "Hello, world!"
substring = "substring"
if substring in string:
position = string.find(substring)
print("子字符串位于位置", position)
else:
print("子字符串未找到")
这段代码首先检查 substring
是否在 string
中。如果在,就尝试找到子字符串的位置;否则,直接打印 “子字符串未找到”,从而避免了引发 ValueError
。