Using isdigit for floats?

Peter Nolan picture Peter Nolan · Nov 9, 2010 · Viewed 45.8k times · Source
a = raw_input('How much is 1 share in that company? ')

while not a.isdigit():
    print("You need to write a number!\n")
    a = raw_input('How much is 1 share in that company? ')

This only works if the user enters an integer, but I want it to work even if they enter a float, but not when they enter a string.

So the user should be able to enter both 9 and 9.2, but not abc.

How should I do it?

Answer

dan04 picture dan04 · Nov 9, 2010

EAFP

try:
    x = float(a)
except ValueError:
    print("You must enter a number")