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