Python中ValueError的处理
Python中ValueError的处理
有时候使用index()方法查找列表中的元素,如果元素不存在,Python会报ValueError错误,如上图,substring not found,会导致代码运行中断。
当我们也不确定是否存在某一个元素时,我们应该强化代码处理这种问题的能力,这里提供三种解决方法。
find()方法
find()方法可以查找字符串中是否存在某个子字符串,如果存在返回子字符串的索引,如果不存在返回-1。
for word in word_list:
i = quote.find(word)
print(f"{i} - {word}")
唯一要注意的是,由于它返回的是-1,如果代码后续需要使用到索引,需要判断这个-1是否合理。
s = "abcdef"
i = s.find("k") # returns -1, since there is no 'k'
print(s[i])
print(s[i] if i > -1 else "###")
try-except方法
几乎是对代码运行不自信的最好处理方法,try-except方法可以捕获异常,避免程序中断。
for word in word_list:
try:
i = quote.index(word)
print(f"{i} - {word}")
except ValueError:
print(f"{word} not found")
in方法
在查找前使用in作为一个先决判断。
for word in word_list:
i = quote.index(word) if word in quote else "#"
print(f"{i} - {word}")
代码已经放进了星球里。