concatenation 'spamxyzs is unchanged 'spams repetition 'spamspamspamspamspamspamspamspamnotice that the plus sign (+means different things for different objectsaddition for numbersand concatenation for strings this is general property of python that we'll call polymorphism later in the book--in sumthe meaning of an operation depends on the objects being operated on as you'll see when we study dynamic typingthis polymorphism property accounts for much of the conciseness and flexibility of python code because types aren' constraineda python-coded operation can normally work on many different types of objects automaticallyas long as they support compatible interface (like the operation herethis turns out to be huge idea in pythonyou'll learn more about it later on our tour immutability also notice in the prior examples that we were not changing the original string with any of the operations we ran on it every string operation is defined to produce new string as its resultbecause strings are immutable in python--they cannot be changed in place after they are created in other wordsyou can never overwrite the values of immutable objects for exampleyou can' change string by assigning to one of its positionsbut you can always build new one and assign it to the same name because python cleans up old objects as you go (as you'll see later)this isn' as inefficient as it may sounds 'spams[ 'zimmutable objects cannot be changed error text omitted typeerror'strobject does not support item assignment 'zs[ : 'zpambut we can run expressions to make new objects every object in python is classified as either immutable (unchangeableor not in terms of the core typesnumbersstringsand tuples are immutablelistsdictionariesand sets are not--they can be changed in place freelyas can most new objects you'll code with classes this distinction turns out to be crucial in python workin ways that we can' yet fully explore among other thingsimmutability can be used to guarantee that an object remains constant throughout your programmutable objectsvalues can be changed at any time and place (and whether you expect it or notstrings