title: Recursive factorial using dict causes RecursionError
body: <p>A simple recursive factorial method works perfectly:</p>
  
  <pre><code>def fact(n):
      if n == 0:
          return 1
      return n * fact(n-1)
  </code></pre>
  
  <p>But I wanted to experiment a little and use a <code>dict</code> instead. Logically, this should work, but a bunch of print statements tell me that <code>n</code>, instead of stopping at <code>0</code>, glides down across the negative numbers until the maximum recursion depth is reached:</p>
  
  <pre><code>def recursive_fact(n):
      lookup = {0: 1}
      return lookup.get(n, n*recursive_fact(n-1))
  </code></pre>
  
  <p>Why is that?</p>