Skip to main content

Section 7.5 Strings are immutable

It is tempting to use the operator on the left side of an assignment, with the intention of changing a character in a string. For example:
The greeting string is an example of an object and the character you tried to assign is an example of an item. For now, think of an object as a special virtual construction. Objects have special properties. Strings, for example, are objects that hold a sequence of characters. An item is one of the values in a sequence.
The reason for the error is that strings are immutable, which means that you can't modify an existing string. The best you can do is create a new string that is a variation on the original:
This example concatenates a new first letter onto a slice of greeting. It has no effect on the original string.
Or, you can reassign an existing variable to a completely new string:
This example assigns the greeting variable to represent a new string object. The old string object is deleted in the process.

Checkpoint 7.5.1.

    11-9-4: Given the following code segment, what is the value of the string s1 after the code is executed?
    s1 = 'xy'
    s2 = s1
    s1 = s1 + s2 + 'z'
    
  • xyz
  • Incorrect! Think about the values of s1 and s2 before line 3, then use those to determine the value of s1 in line 3. Try again.
  • xyxyz
  • Correct! The right side of the assignment statement is evaluated, then s1 is redefined to be equal to that, so s1 becomes xyxyz.
  • xy xy z
  • Incorrect! No spaces are added during concatenation. Try again.
  • There is an error
  • Incorrect! The right side of the assignment statement is evaluated, then s1 is redefined to be equal to that. Try again.

Checkpoint 7.5.2.

    11-9-5: What is printed by the following statements:
    s = "Ball"
    s[0] = "C"
    print(s)
    
  • Ball
  • Incorrect! Assignment is not allowed with strings. Try again.
  • Call
  • Incorrect! Assignment is not allowed with strings. Try again.
  • C
  • Incorrect! Assignment is not allowed with strings. Try again.
  • Nothing, there is an error
  • Correct! Strings are immutable.

Checkpoint 7.5.3.

11-9-6: You cannot change an existing string because it is ________.