title: string.upper(<str>) and <str>.upper() won't execute
body: <p>I have the following bit of code:</p>
  
  <pre><code>def test():
      fragment = ''
      fragment = raw_input('Enter input')
      while fragment not in string.ascii_letters:
          fragment = raw_input('Invalid character entered, try again: ')
      fragment.upper()
      print fragment*3
  </code></pre>
  
  <p>However when I run it, say for an input value of <code>p</code>, <code>fragment</code> gets printed as 'ppp' - all lower case, i.e. the <code>fragment.upper()</code> line does not run. The same thing happens if I replace that line with <code>string.upper(fragment)</code> (and adding <em>import string</em> at the beginning). Can someone tell me what I'm doing wrong?</p>