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.
- "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.
11-9-3: What is printed by the following statements?
cheer = "Go Blue!"
print(cheer[3])
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:
- 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.
11-9-5: The following code would cause what kind of error?
fruit = 'papaya'
letter = fruit[1.5]
- "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.
11-9-6: What is printed by the following statements?
hello = "Hi, my name is Olivia."
hello = hello[15]
print(hello)