Skip to main content

Section 7.1 A string is a sequence

A string is a sequence of characters. You can access the characters one at a time with the bracket operator:
>>> fruit = 'banana'
>>> letter = fruit[1]
The second statement extracts the character at index position 1 from the fruit variable and assigns it to the letter variable.
The expression in brackets is called an index. The index indicates which character in the sequence you want.
But you might not get what you expect:
For most people, the first letter of “banana” is “b”, not “a”. But in Python, the index of a sequence is equal to its offset from the beginning of the string, and the offset of the first letter is zero.
So “b” is the 0th letter (“zero-th”) of “banana”, “a” is the 1th letter (“one-th”), and “n” is the 2th (“two-th”) letter.
Figure 7.1.1.

Checkpoint 7.1.2.

    11-9-3: What is printed by the following statements?
    cheer = "Go Blue!"
    print(cheer[3])
    
  • "o"
  • Incorrect! Remember that in Python, counting starts at zero; so "o" is actually cheer[1]. Try again.
  • " "
  • Incorrect! Remember that in Python, counting starts at zero; so " " is actually cheer[2]. Try again.
  • "B"
  • Correct! In Python, counting starts with zero; so cheer[3] is "B".
  • "l"
  • Incorrect! Remember that in Python, counting starts at zero; so "l" is actually cheer[4]. Try again.
You can use any expression, including variables and operators, as an index, but the value of the index has to be an integer. Otherwise you get:

Checkpoint 7.1.3.

    11-9-5: The following code would cause what kind of error?
    fruit = 'papaya'
    letter = fruit[1.5]
    
  • IndexError
  • Incorrect! You will get an IndexError if you try to access a string beyond its range. For example, if string = "hi", calling string[2] would cause an IndexError. Try again.
  • TypeError
  • Correct! A TypeError would occur because the program is expecting an integer as the index, not a float.
  • SyntaxError
  • Incorrect! A SyntaxError is caused when there are issues with the code as it is written, rather than the values it is given. Try again.
  • This code is correct and would cause no errors
  • Incorrect! You cannot use a float as the value of an index. Try again.

Checkpoint 7.1.4.

    11-9-6: What is printed by the following statements?
    hello = "Hi, my name is Olivia."
    hello = hello[15]
    print(hello)
    
  • "O"
  • Correct! In Python, counting starts with zero, so hello[15] = 'O'. Then, the asignment statement sets hello equal to 'O'.
  • " "
  • Incorrect! Remember that in Python, counting starts at zero! Try again.
  • "Olivia"
  • Incorrect! hello[15] = 'O', not 'Olivia'. Try again.
  • "l"
  • Incorrect! Make sure you're counting correctly, starting from 0. Try again.

Checkpoint 7.1.5.

11-9-7: The expression in brackets that indicates which character you want to get from a sequence is called a(n) ______.