This is a short one, yet very irritating. I know I can count the amount of times a string occurs within another string like this:
banana contains the letter
"a" 3 times.
This is where it gets kind of weird.
My first confusion is - when I do
'foo'.count(''), what does Python look for?
'' == None == anything?
It doesn't seem to be the case, but then again, what IS
'' logically speaking? And more importantly, why does
return one more than the length of the string?
What the hell is included in a string that's always 1 higher than the amount of letters? the void?
' character twice looks like one
" character. I am talking about two times
' here, to avoid confusion
EDIT2: There seems to be some confusion about how the amount of
'' happen. Refer to comments below.
Let's see, you are checking count('') which are always number of letters+1
s = '' + 'a' + '' s.count('') >> 2 >>> s 'a'
Return the number of non-overlapping occurrences of substring sub.
Lets see in detail about this NULL character which is something like '/x00' in Python:
a = ''+''+'' >>> print(a.__sizeof__()) 37 >>> a = '/x00/x00/x00' >>> print(a.__sizeof__()) 40
You can see the change in size using a null character. Null character is a character in Python.