[Tutor] Dividing a float derived from a string

Adam Jensen hanzer at riseup.net
Fri Nov 21 04:14:11 CET 2014

On Thu, 20 Nov 2014 21:20:27 +0000
Stephanie Morrow <svmorrow at gmail.com> wrote:

> Hi there,
> I have been posed with the following challenge:
> "Create a script that will ask for a number. Check if their input is a
> legitimate number. If it is, multiply it by 12 and print out the result."
> I was able to do this with the following code:
> input = raw_input("Insert a number: ")
> if input.isdigit():
>     print int(input) * 12
> else:
>     print False
> *However*, a colleague of mine pointed out that a decimal will return as
> False.  As such, we have tried numerous methods to allow it to divide by a
> decimal, all of which have failed.  Do you have any suggestions?
> Additionally, we are using 2.7, so that might change your answer.
> Thank you in advance for any help you can provide!
> -Stephanie

How about using a floating point type cast to convert the string to a number within a try/except block? Maybe something like this:

    x = float(input("Enter a number: "))
    print(x * 12)
except ValueError:
    print("Not a valid number.")

A little enhancement might involve removing any spaces from the string so something like '5.6 e -3' will also be valid input. Like this:

x = float(input("Enter a number: ").replace(' ',''))

More information about the Tutor mailing list