In the previous activity, a single character was accessed using an index, like c = s[3]. Your scripts can also view segments of strings by using a range instead of a single index number in the square brackets.
Let's say you have a string named s:
- s[5] — fifth character in a string
- s[3:7] — third through sixth characters in a string
- s[:5] — beginning through the fifth character
- s[11:] — eleventh character through the end of the string.
In Python-speak, strings are considered immutable. Being immutable means that once created, a string cannot be changed. That doesn't mean that s = "Have a nice day." cannot be changed to s = "Have a GREAT day!" It just means that the original "Have a nice day." string cannot be changed. A statement can still grab parts of "Have a nice day." and use them to create a new string that reads "Have a GREAT day!" The resulting string can even be assigned back to s.
s = "Have a nice day." # BEFORE s = s[:7] + "GREAT" + s[11:15] + "!" s = "Have a GREAT day!" # AFTER
The s variable starts as this string: "Have a nice day." The second line adds "Have a " + "GREAT" + " day" + "!". See how "Have a " is s[:7] from the original string? Add the string "GREAT" to that, and then " day" with a leading space, which is s[11:15], and lastly add "!", and the string surgery is complete!
Example script: string_surgery_try_this
This script starts with "Have a nice day." and then creates a new string sn with the "nice" portion of the original. After that, it demonstrates some more ways to access segments of an original string that were introduced above.
- Enter, name, and save string_surgery_try_this.
- Click the Send to micro:bit button.
# string_surgery_try_this from microbit import * sleep(1000) s = "Have a nice day!" print("Original: s = ", s) sn = s[7:11] print("Create sn from s[7:11]") print("sn =", sn) print("More substrings:") print("s[5] = ", s[5]) print("s[:7] = ", s[:7]) print("s[7:10] = ", s[7:11]) print("s[10:] = ", s[11:])
- Check the results in the serial monitor.
- Verify that it displays:
The original string: s = Have a nice day!
Create sn from s[7:11] sn = nice
More substrings:
s[5] = a
s[:7] = Have a
s[7:10] = nice
s[10:] = day!