On Thu, 20 Nov 2014 21:20:27 +0000
Stephanie Morrow <svmor...@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:

try:
    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(' ',''))
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to