Tutorial creates confusion about slices
Michael Bentley
michael at jedimindworks.com
Tue Apr 24 05:31:55 EDT 2007
On Apr 24, 2007, at 1:39 AM, Antoon Pardon wrote:
> On 2007-04-23, Michael Bentley <michael at jedimindworks.com> wrote:
>>
>> On Apr 23, 2007, at 7:38 AM, Antoon Pardon wrote:
>>
>>> The following is part of the explanation on slices in the
>>> tutorial:
>>>
>>> The best way to remember how slices work is to think of the
>>> indices as
>>> pointing between characters, with the left edge of the first
>>> character
>>> numbered 0. Then the right edge of the last character of a string
>>> of n
>>> characters has index n, for example:
>>>
>>> +---+---+---+---+---+
>>> | H | e | l | p | A |
>>> +---+---+---+---+---+
>>> 0 1 2 3 4 5
>>> -5 -4 -3 -2 -1
>>>
>>> This is all very well with a simple slice like:
>>>
>>> "HelpA"[2:4] => "lp"
>>>
>>>
>>> But it give the wrong idea when using the following extended slice:
>>>
>>> "HelpA"[4:2:-1] => "Ap"
>>>
>>> So this doesn't result in the reverse of the previous expression
>>> while
>>> the explanation above suggest it does.
>>>
>>>
>>> So I suggest to drop this.
>>
>> But 'drop' means to let or make (something) fall vertically... :-)
>>
>> At that point in the tutorial, step values had not been discussed.
>> Just a bit lower down on the page you'll find a link to 'Sequence
>> Types' where you'll find an explanation of stepping you'll perhaps
>> find more satisfactory.
>
> That is very well posible. The question: Even if we get a good
> explanation later, do we want an explanation here that can cause
> confusion. These things are not just read and then discarded.
> Someone can already have read the whole tutorial and then come
> back to this place. So at that point he knows about stepping
> when he is reading this.
>
>
> I suspect that if you give this explanation to someone and explain
> that there is also a step parameter, chances are he will answer
> correctly if you ask him, what he thinks the following will result
> in:
>
>
> "This is an example line"[12:19:2]
>
>
>
> If you ask him what the following will result in:
>
> "This is an example line"[19:12:-1]
>
> Chances are he will give the wrong answer.
To be honest, bro -- I'd expect him to have enough intelligence to
experiment for a second and figure it out. This isn't rocket science
-- you can plainly see what's happening -- so learn it and move on.
Or better yet, quietly submit a patch...
More information about the Python-list
mailing list