I believe what you are trying to do is something like the following.
-
def isIntLike(x):
-
try: int(x)
-
except: return False
-
else: return True
-
-
something = raw_input("Enter something and I will tell you the type: ")
-
-
if isIntLike(something): print "I am an int"
-
elif isinstance(something, type('')): print "I am a string"
-
else: print "I am an impostor!"
-
Note that you should be using raw_input() rather than input(). The
former always returns a string. The latter tries to execute the input,
hence your error message.
Also note that everything input on the command line is a string,
regardless of what you type. If you want type checking, use C++ or
java. If you want to check for anything more than IntLike strings, you
should consider using regular expressions through the 're' package.
For user-defined types, use 'isinstance(something, class object)' to
check for a type.
Lastly, you may be interested in the 'getopt' module, which handles
command line arguments (as opposed to prompting user for input)
automatically. See here:
http://python.active-venture.com/lib/module-getopt.html
Check out the Python Cookbook for lots of good examples:
http://aspn.activestate.com/ASPN/Cookbook/Python
HTH,
Jay
Alex Pavluck wrote:
Hello. I get the following error with the following code. Is there
something wrong with my Python installation?
code:
import types
something = input("Enter something and I will tell you the type: ")
if type(something) is types.IntType:
print "you entered an integer"
elif type(something) is types.StringType:
print "you entered a string"
error:
String: Source for exec/eval is unavailable