title: python: pass multiple arguments from one function to another
body: <p>I'm trying to learn python (with my VBA background) buy building a black-jack game as a pedagogical exercise.</p>
  
  <p>I've done some searches about passing multiple arguments but I really don't understand what i'm finding in the way of explanations.</p>
  
  <p>Looking at the last function called 'hand' i'm trying to make use of three separate values passed as a 'return' from a previous function.</p>
  
  <p>I get the following error:</p>
  
  <pre><code>Traceback (most recent call last):
  File "decky15.py", line 56, in &lt;module&gt;
  print hand(deal(shuffle(load_deck())))
  TypeError: hand() takes exactly 3 arguments (1 given)
  </code></pre>
  
  <p>What am I doing wrong?  How can I be more efficient?  Any suggestions on solutions or readings are much appreciated.</p>
  
  <pre><code>import random
  
  
  def load_deck():
      suite = ('Spades', 'Hearts', 'Diamonds', 'Clubs')
      rank = ('2', '3', '4', '5', '6', '7', '8', '9', '10', "Jack", "Queen", "King", "Ace")
      full_deck = {}
      i = 0
      for s in suite:
          for r in rank:
              full_deck[i] = "%s of %s" % (r, s)
              i += 1
      return full_deck
  
  def pick_item(dict_in_question):   
      card_key = random.choice(dict_in_question.keys()) 
      card = dict_in_question[card_key]  
      del dict_in_question[card_key]  
      return card
  
  def shuffle(dict_in_question):  #takes a dictionary as an argument and shuffles it
      shuff_dict = {}
      n = len(dict_in_question.keys())
      for i in range(0, n):
          shuff_dict[i] = pick_item(dict_in_question)
      return shuff_dict
  
  def deal(dict_in_question):
  dealer ={}
  player = {}
  for i in range (2):
      player[i] = pick_item(dict_in_question)
          dealer[i] = pick_item(dict_in_question)
  return (player, dealer, dict_in_question)
  
  def hand(player, dealer, dict_in_question):
  print"Here are the opening hands:"
  print"Dealer: %s" % dealer(1)
  print" - " * 10
  print"Your hand:"
  print"%s" % player[0]
  print"%s" % player[1]
  return 0
  
  print hand(deal(shuffle(load_deck())))  #changed to: hand(*deal(shuffle(load_deck())))
  </code></pre>