title: TypeError: argument of type 'function' is not iterable
body: <p>Error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "ex36.py", line 100, in &lt;module&gt;
      start()
    File "ex36.py", line 16, in start
      giant()
    File "ex36.py", line 59, in giant
      dead()
    File "ex36.py", line 70, in dead
      try_again()     
    File "ex36.py", line 85, in try_again
      if "y" in user_input or "yes" in user_input:
  TypeError: argument of type 'function' is not iterable
  </code></pre>
  
  <p>This is the code block that is getting the error:</p>
  
  <pre><code>def try_again():
      print "Would you like to try again?"
      user_input = uput
      if "y" in user_input or "yes" in user_input:
          start()
      elif "n" in user_input or "no" in user_input:
          sys.exit()
      else:
          try_again()
  </code></pre>
  
  <p>I think I am getting the error because it is recursive function but I use them through out the game and they worked untill I added try_again().</p>
  
  <p>Here is the rest of the code in case it helps:</p>
  
  <pre><code>    # Role Playing Game I made to practice my Python skills!
  import sys
  
  def uput(): # get user input and make it all lowercase
      return raw_input("&gt; ").lower()
  
  def start(): #Starts the game
      print "You are in room with a left and right door."
      print "Which do you choose?"
      user_input = uput()
      if user_input == "left":
         print "You open the door..."
         lavapit() 
      elif user_input == "right":
          print "You open the door..."
          giant()
      else:
          print "Try again." + "\n" * 3
          start()
  
  def lavapit():
      print "Your on the edge of valcano."
      mountain(10)
      print "One wrong step and you fall into the volcano!"
      print "You can walk along the edge to the other side and take the path down to the base"
      print "Or return to the room!"
      user_input = uput()
      if "walk" in user_input or "along" in user_input or "edge" in user_input:
         print "You stumble."
         print "And fall off into the lava!" 
         dead()
      elif "return" in user_input or "door" in user_input or "go back" in user_input:
          start()
      else:
          print "Try again." + "\n" * 3
          lavapit()
  
  def giant():
      print "You enter a dark musty room."
      print "With very high ceilings."
      print "Then you hear... heavy breathing."
      print "Do you walk slowly and quitely to your right or left."
  
      right = 0
      left = 0
      while right &lt;= 4 or left &lt;= 5:
          user_input = uput()
          if "right" in user_input and right &lt; 3:
              print "You edge slowly to the right."
              right += 1
              left -= 1
          elif "left" in user_input and left &lt; 4:
              print "You edge closer to the left."
              right -= 1
              left += 1
          elif "right" in user_input and right &gt; 2:
              print "You bump into the giant and get eaten alive."
              print "The giant says, 'Yum'."
              dead()
          elif "left" in user_input and left &gt; 3:
              print "You reach a dark hole in the wall the size of giant mouse."
              print "Do you enter it?"
              hole()
          else:
              print "Try again." + "\n" * 3
              giant()
  def dead():
      print "-" * 30
      print "Sorry you loose!"
      try_again()     
  
  def hole():
      user_input = uput()
      if "yes" in user_input or "y" in user_input:
          print "Congratulations! You won nothing!"
          try_again()
      elif "no" in user_input or "n" in user_input:
          return
      else:
          hole()
  
  def try_again():
      print "Would you like to try again?"
      user_input = uput
      if "y" in user_input or "yes" in user_input:
          start()
      elif "n" in user_input or "no" in user_input:
          sys.exit()
      else:
          try_again()
  
  
  def mountain(x):
      i = 2
      while x &gt; 0:
          print " " * x + "@" * i
          x -= 1
          i += 2
  
  start()
  </code></pre>