Strings are Immutable¶
Even though you can manipulate a string to create a new string the original string is immutable which means that it doesn’t change. Notice that after you execute the code below the string stored in the variable sentence
hasn’t changed.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
While the strings themselves can’t be changed you can change the value of a variable. This throws away the original string and sets the variable’s value to the new string.
- xyz
- s1 will equal "xy" plus another "xy" then z at the end.
- xyxyz
- s1 contains the original value, plus itself, plus "z"
- xy xy z
- No spaces are added during concatenation.
- xy z
- No spaces are added during concatenation, and an additional "xy" should be included at the beginning.
- z
- s1 was set to "xy" initially, so the final answer will be "xyxyz"
csp-4-3-3: Given the following code segment, what is the value of the string s1 after these are executed?
s1 = "xy"
s2 = s1
s1 = s1 + s2 + "z"
- Hey
- This would be correct if we had asked what the value of s3 was. What is the value of s1?
- hey
- This would be true if we asked what the value of s2 was after the code executes. What is the value of s1?
- HEY
- Strings are immutable, meaning they don't change. Any function that changes a string returns a new string. So s1 never changes unless you set it to a different string.
csp-4-3-4: What is the value of s1 after the following code executes?
s1 = "HEY"
s2 = s1.lower()
s3 = s2.capitalize()