def is_a_number(s):
if _s.fun.is_iterable(s) and not type(s) == str: return False<EOL>try:<EOL><INDENT>float(s)<EOL>return <NUM_LIT:1><EOL><DEDENT>except:<EOL><INDENT>try: <EOL><INDENT>complex(s)<EOL>return <NUM_LIT:2><EOL><DEDENT>except:            <EOL><INDENT>try: <EOL><INDENT>complex(s.replace('<STR_LIT:(>','<STR_LIT>').replace('<STR_LIT:)>','<STR_LIT>').replace('<STR_LIT:i>','<STR_LIT>'))<EOL>return <NUM_LIT:2><EOL><DEDENT>except:            <EOL><INDENT>return False<EOL><DEDENT><DEDENT><DEDENT>
This takes an object and determines whether it's a number or a string
representing a number.