title: Why does Python's string.printable contains unprintable characters?
body: <p>I have two String.printable mysteries in the one question.</p>
  
  <p>First, in Python 2.6:</p>
  
  <pre><code>&gt;&gt;&gt; string.printable
  '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&amp;\'()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
  </code></pre>
  
  <p>Look at the end of the string, and you'll find '\x0b\x0c' sticking out like a sore-thumb. Why are they there? I am using a machine set to Australian settings, so there shouldn't be any accented characters or the like.</p>
  
  <p>Next, try running this code:</p>
  
  <pre><code>for x in string.printable: print x,
  print
  for x in string.printable: print x
  </code></pre>
  
  <p>The first line successfully prints all the characters separated by a space. The two odd characters turn out as the Male and Female symbols.</p>
  
  <p>The second line successfully prints all the characters EXCEPT THE LAST separated by a line feed. The Male symbol prints; the female symbol is replaced with a missing character (a box).</p>
  
  <p>I'm sure Python wasn't intended to be gender-biased, so what gives with the difference?</p>