title: New style formatting with tuple as argument
body: <p>Why can't I use tuple as argument to formatter in new style ("string".format())? It works fine in old style ("string" %)?</p>
  
  <p>This code works:</p>
  
  <pre><code>&gt;&gt;&gt; tuple = (500000, 500, 5)
  ... print "First item: %d, second item: %d and third item: %d." % tuple
  
      First item: 500000, second item: 500 and third item: 5.
  </code></pre>
  
  <p>And this doesn't:</p>
  
  <pre><code>&gt;&gt;&gt; tuple = (500000, 500, 5)
  ... print("First item: {:d}, second item: {:d} and third item: {:d}."
  ...       .format(tuple))
  
      Traceback (most recent call last):
       File "&lt;stdin&gt;", line 2, in &lt;module&gt;
      ValueError: Unknown format code 'd' for object of type 'str'
  </code></pre>
  
  <p>Even with {!r}</p>
  
  <pre><code>&gt;&gt;&gt; tuple = (500000, 500, 5)
  ... print("First item: {!r}, second item: {!r} and third item: {!r}."
  ...       .format(tuple))
  
      Traceback (most recent call last):
       File "&lt;stdin&gt;", line 2, in &lt;module&gt;
      IndexError: tuple index out of range
  </code></pre>
  
  <p>Though it works with that way:</p>
  
  <pre><code>&gt;&gt;&gt; print("First item: {!r}, second item: {!r} and third item: {!r}."
  ...       .format(500000, 500, 50))
  
      First item: 500000, second item: 500 and third item: 5.
  </code></pre>