Jim and Laura Ahl said unto the world upon 2005-04-14 02:09:
How come when I ask it to print i[2:4] from an inputted string it
gives me the letters between two and four

But when I ask it to print i[-1:-4] it does not print anything.

Jim


Hi Jim,

good to see you are still working at it. And posting some bits of code to focus a response around is helpful :-)

>>> 'my test string'[-1:-4]
''

This tells Python to start at the end of the string and go *forward*, one position at a time, up to, but not including, the -4 position. But, since there is nothing forward from the end of the string, this gives the empty string.

That suggests we need to one of two things:

>>> 'my test string'[-1:-4:-1]
'gni'
>>>

That says start at the end and go *backwards*, one position at a time, up to, but not including, the -4 position.

Or,

>>> 'my test string'[-4:-1]
'rin'
>>>

This says start at the -4 position and go forwards, one position at a time, up to, but not including the -1 position (i.e. the last letter).

We can also do
>>> 'my test string'[-4:]
'ring'
>>>

to remove the "but not including the -1 position" part of the instruction.

Try playing around with indexes using 1, 2, or 3, `slots'[*] and specifying all, none, or some, and see what comes out. If you don't understand the results, post again with the examples you don't understand.

[*] slots? I mean:
'I am indexed with 1 slot'[4]
'I am indexed with 2 slots'[4:6]
'I am indexed with 3 slots'[4:6:1]
'None of my slots have been "specified" '[:]

(There must be a better term that `slots', but it is 3am :-)

Best,

Brian vdB

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to