title: f-string format specifier with None throws TypeError
body: <p>Using plain f-strings with a NoneType object works:</p>
  
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; a = None
  &gt;&gt;&gt; f'{a}'
  'None'
  </code></pre>
  
  <p>However, when using a format specifier, it breaks---as does str.format():</p>
  
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; f'{a:&gt;6}'
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: unsupported format string passed to NoneType.__format__
  
  &gt;&gt;&gt; '{:&gt;6}'.format(a)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  TypeError: unsupported format string passed to NoneType.__format__
  </code></pre>
  
  <p>Unexpectedly, (for me, at least) the old C-style string formatting works:</p>
  
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; '%10s' % a
  '      None'
  </code></pre>
  
  <p>What is going on here? I don't understand why <code>f'{a:&gt;6}'</code> doesn't evaluate to <code>'  None'</code>. Why should a format specifier break it?</p>
  
  <p>Is this a bug in python? If it is a bug, how would I fix it?</p>