title: Why assign to None prompts that variable is not defined
body: <p>I created a snippet of code to test the variable declaration,</p>
  
  <pre><code>In [37]: price = {"apple": 3, "orange":1}                                                                         
  
  In [38]: for key in price: 
      ...:     fruit = key                                                                                          
  In [39]: fruit                                                                                                    
  Out[39]: 'orange'
  </code></pre>
  
  <p>It works without efforts to declare variable fruit in advance,<br>
  Nonetheless, </p>
  
  <pre><code>In [44]: cars = {}                                                                                                
  
  In [45]: for key in cars: 
      ...:     car = key                                                                                            
  In [46]: car                                                                                                      
  ---------------------------------------------------------------------------
  NameError                                 Traceback (most recent call last)
  &lt;ipython-input-46-38f6ffefbd69&gt; in &lt;module&gt;
  ----&gt; 1 car
  
  NameError: name 'car' is not defined
  </code></pre>
  
  <p>It prompt car is not defined, </p>
  
  <pre><code>In [51]: for key in cars: 
      ...:     print(type(car), dir(car))  
  #it output nothing, key is None
  </code></pre>
  
  <p>but <code>None</code> can be assigned to car                                                                        </p>
  
  <pre><code>In [52]: car = None                                                                                               
  In [53]: car                                                                                                     
  In [54]: i = car                                                                                                  
  In [55]: i  
  </code></pre>
  
  <p>It is not report error that <code>i is not defined</code>,  </p>
  
  <p>What's the difference of the two cases?                                                                                                 </p>