title: Why can't non-default arguments follow default arguments?
body: <p>Why does this piece of code throw a SyntaxError?</p>
  <pre><code>&gt;&gt;&gt; def fun1(a=&quot;who is you&quot;, b=&quot;True&quot;, x, y):
  ...     print a,b,x,y
  ... 
    File &quot;&lt;stdin&gt;&quot;, line 1
  SyntaxError: non-default argument follows default argument
  </code></pre>
  <p>While the following piece of code runs without visible errors:</p>
  <pre><code>&gt;&gt;&gt; def fun1(x, y, a=&quot;who is you&quot;, b=&quot;True&quot;):
  ...     print a,b,x,y
  ... 
  </code></pre>