是否有一种优雅的方法来检查str.find()
实例方法返回的值-1?我发现测试值为-1非常难看,但我不想说<这可能导致混淆。
if (myString.find('foo') == -1):
print("foo not found in ", myString)
答案 0 :(得分:13)
如果您不需要索引,请不要使用str.find()
。使用in
来测试子字符串;或者在这种情况下not in
否定测试:
if 'foo' not in myString:
print("foo not found in", myString)
答案 1 :(得分:3)
作为参考,如果您确实需要索引,还有另一种用于查找索引的字符串实例方法:str.index
。
str.index
和str.find
之间的区别在于,如果找不到子字符串,str.index
将raise ValueError
,这可能更适合您的用例(例如,你希望子字符串通常存在):
try:
index = myString.index("foo")
except ValueError:
print("'foo' not found in '{0}'.".format(myString))
else:
# 'foo' was found, 'index' has been assigned