Strings in Python (Part I)

A string is a sequence of characters. The index indicates which character in the sequence you want to access and similar to Java indexing in python also starts from zero.You can access the characters one at a time with the bracket operator:

>>> fruit = 'banana'
>>> letter = fruit[1]
>>> print letter

a

len is a built-in function that returns the number of characters in a string:

>>> fruit = 'banana'
>>> len(fruit)

6

To get the last letter of a string, you might be tempted to try something like this:

>>> length = len(fruit)
>>> last = fruit[length]

IndexError: string index out of range

The reason for the IndexError is that there is no letter in ’banana’ with the index 6. Since we started counting at zero, the six letters are numbered 0 to 5. To get the last character, you have to subtract 1 from length:

>>> last = fruit[length-1]
>>> print last

a

Alternatively, you can use negative indices, which count backward from the end of the string. The expression fruit[-1] yields the last letter, fruit[-2] yields the second to last, and so on.
A lot of computations involve processing a string one character at a time. Often they start at the beginning, select each character in turn, do something to it, and continue until the end. This pattern of processing is called a traversal. One way to write a traversal is with a while loop:

index = 0
while index < len(fruit):

    letter = fruit[index]
    print letter
    index = index + 1

This loop traverses the string and displays each letter on a line by itself. The loop condition is index < len(fruit), so when index is equal to the length of the string, the condition is false, and the body of the loop is not executed. The last character accessed is the one with the index len(fruit)-1, which is the last character in the string.
Another way to write a traversal is with a for loop:

for char in fruit:

    print char

Each time through the loop, the next character in the string is assigned to the variable char. The loop continues until no characters are left.4