The next major built-in type is the Python string—an ordered collection of characters, used to store and represent text-based information. From a functional perspective, strings can be used to represent just about anything that can be encoded as text: symbols and words (e.g., your name), contents of text files loaded into memory, Internet addresses, Python programs, and so on.
You may have used strings in other languages too;
Python’s strings serve the same role as character
arrays in languages such as C, but Python’s strings
are a somewhat higher level tool than arrays. Unlike C, Python
strings come with a powerful set of processing tools. Also unlike
languages like C, Python has no special type for single characters
Strictly speaking, Python strings are categorized as immutable sequences—meaning that they have a left-to-right positional order (sequence), and cannot be changed in place (immutable). In fact, strings are the first representative of the larger class of objects called sequences. Pay special attention to the operations introduced here, because they will work the same on other sequence types we’ll see later, such as lists and tuples.
Table 5-1 introduces common string literals and operations. Empty strings are written as two quotes with nothing in between, and there are a variety of ways to code strings. For processing, strings support expression operations such as concatenation (combining strings),