[Python-Dev] Dafanging the find() gotcha
Tim Peters
tim.one@comcast.net
Mon, 05 Aug 2002 20:11:21 -0400
[Patrick K. O'Brien]
> I just never thought of a Python string as beginning and ending
> with a null.
Oh, it's worse than just *that*. There's a null string at s[i:i] for every
value of i, although the *implementation* of find() seems flawed in this
respect; e.g.,
>>> 'abc'.find('', 3)
3
>>>
violates the doc's promise that the result returned (when not -1) is an
"index in s" (but 3 is not an index in 'abc'), while
>>> 'abc'.find('', 4)
-1
>>>
is anybody's guess ('' is certainly a substring of 'abc'[4:]).
However, when you're in the business of returning results that don't have
concrete meaning, things like this happen <wink>.
> So the fact that find('') and rfind('') both return something
> other than -1 was surprising to me.
Then you'll be glad to hear that we're going to make
'' in 'abc'
return True too to help you build on your now-clear understanding <wink>.