On Sun, Sep 16, 2012 at 7:51 PM, Don Jennings <dfjenni...@gmail.com> wrote:
> This behavior seems strange to me:  the find method of a string returns the 
> position zero when you search for an empty string (granted, I can't quite 
> figure out why you'd search for an empty string, either).
>
>>>> 'abc'.find('')
> 0
>
> Anyone care to share a good explantion for this behavior and possible use 
> cases? Thanks!

It actually returns the value of "start":

    >>> 'abc'.find('', 0)
    0
    >>> 'abc'.find('', 1)
    1
    >>> 'abc'.find('', 2)
    2

It's looking for the length 0 substring ''. So it will match a 0
length slice at the given start position:

    >>> 'abc'[0:0]
    ''
    >>> 'abc'[1:1]
    ''
    >>> 'abc'[2:2]
    ''

When you find 'b', for example, it searches for a length 1 slice:

    >>> 'abc'.find('b')
    1
    >>> 'abc'[1:2]
    'b'

The 'in' operator also searches for a substring:

    >>> '' in 'abc'
    True
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to