Matthew Yanez
Matthew Yanez

Reputation: 1

python3 - data type of input()

I need to assign a user-provided integer value to an object. My format is as follows:

object = input("Please enter an integer")

The following print tests...

print(type(object))
print(object)

...return <class 'str'> and '1'. Is there a way to set the data type of 'object' to the data type of the user's input value? IOW, such that if object=1, type(object)=int? I know I can set the data type of an input to int using the following:

object = int(input("Please enter an integer"))

In this case, if the user does not provide an int, the console throws a traceback error and the program crashes. I would prefer to test whether the object is in fact an int; if not, use my program to print an error statement and recursively throw the previous prompt.

Upvotes: 0

Views: 3260

Answers (2)

James Scholes
James Scholes

Reputation: 7906

while True:
 try:
  object = int(input("Please enter an integer"))
  break
 except ValueError:
  print("Invalid input.  Please try again")
print(type(object))
print(object)

Upvotes: 2

nneonneo
nneonneo

Reputation: 179422

You can always catch a "traceback error" and substitute your own error handling.

user_input = input("Please enter an integer")
try:
    user_number = int(user_input)
except ValueError:
    print("You didn't enter an integer!")

Upvotes: 0

Related Questions