[pyar] String.count - WTF?

Claudio Freire klaussfreire en gmail.com
Jue Mayo 31 22:31:28 ART 2012


On Thu, May 31, 2012 at 10:19 PM, Martin Cerdeira
<martincerdeira en gmail.com> wrote:
>>>> "hola".count("")
> 5
>
> Como, seguramente hay una explicación que vuelva lo "antinatural" en
> un "ahhh!! era por eso!!!", pregunto: ma per que??

La corta: es un bug.

La larga:

count(...)
    S.count(sub[, start[, end]]) -> int

    Return the number of non-overlapping occurrences of substring sub in
    string S[start:end].  Optional arguments start and end are interpreted
    as in slice notation.

Así que, técnicamente hablando, hay 4 posiciones claras donde ""
ocurre: 0, 1, 2, 3

Python reporta una cuarta, no tan clara y bastante vidriosa, que capaz
que se pueda considerar un bug: 4.

"hola"[4:].startswith("") == True

¿Por qué se considera 4? Bueno, probablemente sea un caso singular de
la implementación. Si vale la pena corregirlo o no, es... discutible.
Yo diría que es un bug.



More information about the pyar mailing list