[Python-Dev] Remove str.find in 3.0?

Guido van Rossum gvanrossum at gmail.com
Sat Aug 27 05:05:29 CEST 2005

On 8/26/05, Bill Janssen <janssen at parc.com> wrote:
> Doubt it.  The problem with returning None is that it tests as False,
> but so does 0, which is a valid string index position.  The reason
> string.find() returns -1 is probably to allow a test:
>       if line.find("\f"):
>          ... do something

This has a bug; it is equivalent to "if not line.startswith("\f"):".

This mistake (which I have made more than once myself and have seen
many times in code by others) is one of the main reasons to want to
get rid of this style of return value.

> Might add a boolean "str.contains()" to cover this test case.

We already got that: "\f" in line.

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-Dev mailing list