Hi I am trying to print the data type of a user input and produce a table like following:
ABCDEFGH = String, 1.09 = float, 0 = int, true = bool
, etc. I'm using python 3.2.3 and I know I could use type() to get the type of the data but in python all user inputs are taken as strings and I don't know how to determine whether the input is a string or Boolean or integer or float. Here is that part of the code:
user_var = input("Please enter something: ")
print("you entered " + user_var)
print(type(user_var))
which always returns str for string. Appreciate any help
input()
will always return a string. If you want to see if it is possible to be converted to an integer, you should do:You could write a function like this:
However, as mentioned in the other answers, using
ast.literal_eval
would be a more concise solution.Input will always return a string. You need to evaluate the string to get some Python value:
If you want safety (here user can execute arbitrary code), you should use
ast.literal_eval
: