title: how to tell a variable is iterable but not a string
body: <p>I have a function that take an argument which can be either a single item or a double item:</p>
  
  <pre><code>def iterable(arg)
      if #arg is an iterable:
          print "yes"
      else:
          print "no"
  </code></pre>
  
  <p>so that:</p>
  
  <pre>
  >>> iterable( ("f","f") )
  yes
  
  >>> iterable( ["f","f"] )
  yes
  
  >>> iterable("ff")
  no
  </pre>
  
  <p>The problem is that string is technically iterable, so I can't just catch the ValueError when trying <code>arg[1]</code>. I don't want to use isinstance(), because that's not good practice (or so I'm told).</p>