Verify the type of input

1

Good people! I need to do an input check for a job and I can not do this properly. This is what I have until agr:

def verificação1():
     while True:
        try:
            quantidade=int(input("Insira a quantidade: "))
            quantidade=str(quantidade)
            print("Insira um produto válido.")
            continue
        except:
            break

The purpose of this piece of code is to verify that the quantity is even an integer and not a string or float for example. But when I run this does not seem to work ...

    
asked by anonymous 24.11.2016 / 10:43

1 answer

0

While giving I would put the statement of quantidade out of try as a matter of context, what we want to try ( try ) is just to transform the amount to integer. You can do it with recursion:

def verificação1():
    quantidade=input("Insira a quantidade: ")
    try: 
        return int(quantidade) 
    except ValueError:
        print("Insira um produto válido.")
        return verificação1()
print('A quantidade é {}'.format(verificação1()))

Or, doing with the cycle while as you have in the question:

def verificação1():
    while True:
        quantidade=input("Insira a quantidade: ")
        try:
            return int(quantidade)
        except Exception as err:
            print("Insira um produto válido.")
print('A quantidade é {}'.format(verificação1()))

In both examples to transform to str , you can, out of function:

str(verificação1())

Although using some of these examples I find it unnecessary.

I did not understand if it is part of the question, but knowledge does not take up space. To know if a variable is of a specific type you can:

hey = 'heya' # todos sabemos que é uma string
isinstance(hey, float) # False
isinstance(hey, str) # True
    
24.11.2016 / 10:49