title: Multiple arguments passed from user input remain as single argument
body: <p>I am trying to understand the mechanics of passing multiple arguments to a python function. (I am using Python 2.7.9)</p>
  
  <p>I am trying to split multiple user input arguments passed into a function, but they all just get passed in as a single argument of the first value:</p>
  
  <pre><code>    def foo(first,*args):
          return args, type(args)
  
      values = raw_input().split()
      print(foo(values))
  </code></pre>
  
  <p>After saving this to a file and running <code>python &lt;name of file&gt;.py</code>, I have this output:</p>
  
  <pre><code>    $python testfunction.py 
      1 2 2 4h 5   
      (['1', '2', '2', '4h', '5'], &lt;type 'list'&gt;)
      ((), &lt;type 'tuple'&gt;)
  </code></pre>
  
  <p>But if I call foo directly, inside the script like this:</p>
  
  <pre><code>    def foo(first,*args):
          return args, type(args)
  
      print(foo(1, 2, 3, 4, 5))
  </code></pre>
  
  <p>then I get what I want:</p>
  
  <pre><code>    $ python testfunction.py 
      (1, &lt;type 'int'&gt;)
      ((2, 3, 4, 5), &lt;type 'tuple'&gt;)
      None
  </code></pre>
  
  <p>Please why does this happen, and how can I get the second case to happen when I accept user input?</p>