For example:
>>> s = 'python'
>>> s.index('')
0
>>> s.index('p')
0
The empty string is the special case where the sequence has length zero, so there are no symbols in the string. There is only one empty string, because two strings are only different if they have different lengths or a different sequence of symbols.
The entire string is usually considered a substring of itself. The empty string is always a substring of any string, even the empty string. There are two useful operations with substrings. You can ask if some string is a substring of another.
Of course every substring of length zero of any string is equal to the empty string.
You can see "python"
as "the empty string, followed by a p
, followed by fifteen more empty strings, followed by a y
, followed by forty-two empty strings, ...".
Point being, empty strings don't take any space, so there's no reason why it should not be there.
The index
method could be specified like this:
s.index(t)
returns a valuei
such thats[i : i+len(t)]
is equal tot
If you substitute the empty string for t
, this reads: "returns a value i
such that s[i:i]
is equal to ""
". And indeed, the value 0
is a correct return value according to this specification.
This is because the substring of length 0 starting at index 0 in 'python'
is equal to the empty string:
>>> s[0:0]
''
Of course every substring of length zero of any string is equal to the empty string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With