title: Python scoping in functions
body: <p>Consider the following code:</p>
  
  <pre><code>&gt;&gt;&gt; b = 3
  &gt;&gt;&gt; def change (b):
  ...     b = 2
  ... 
  &gt;&gt;&gt; change(b)
  &gt;&gt;&gt; print(b)
  3
  </code></pre>
  
  <p>I am not confused by the fact that the print statement returns 3. Here's the question: is this because of scope, or because the argument that the function takes is not related to the outside <code>b</code>?</p>