title: Is String immutable in Python?
body: <p>I have a question regarding String concept in Python. From my understanding Strings are an immutable part of the language. For instance:</p>
  
  <pre><code>a = 'Emiliano'
  a[0] = 'r'
  print(a)
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>Type Error: 'str' object does not support item assignment
  </code></pre>
  
  <p>So, I know that I need to create another variable, but why in the following case doesn't Python retrieve any error if I am changing the whole string of the variable?</p>
  
  <pre><code>a = 'Emiliano'
  a = 'David'
  print(a)
  </code></pre>
  
  <p>Result: <code>David</code></p>