title: Python Recursion - return values using a bool operator
body: <p>I have a recursive function called eval() that in one case returns:</p>
  
  <pre><code> base case: ...
  
   if some_case():
          return eval() and eval() 
  </code></pre>
  
  <p>That was my first attempt, which did not return the expected result.
  unlike what I believe to be that an equivalent code:</p>
  
  <pre><code> if base case():
       ...
  
   if some_case():     
      add_first = eval()
      add_second = eval()
      return add_first and add_second 
  </code></pre>
  
  <p>which seemed to to the trick.</p>
  
  <p>Would like an explanation on the difference.
  any ideas?</p>