<div dir="ltr"><div><div>Alan,<br><br></div>I am getting a syntax error when I print the following:<br><br>input = raw_input("Insert a number: ")<br><br>try:<br>    print float(input) * 12<br>except: TypeError, ValueError:<br>    print False<br><br></div>The "try" is coming up as red.  Any idea why?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 21, 2014 at 12:23 AM, Alan Gauld <span dir="ltr"><<a href="mailto:alan.gauld@btinternet.com" target="_blank">alan.gauld@btinternet.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 20/11/14 21:20, Stephanie Morrow wrote:<br>
<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
input = raw_input("Insert a number: ")<br>
if input.isdigit():<br>
     print int(input) * 12<br>
else:<br>
     print False<br>
<br></span>
/However/, a colleague of mine pointed out that a decimal will return as<span class=""><br>
False.  As such, we have tried numerous methods to allow it to divide by<br>
a decimal, all of which have failed.  Do you have any suggestions?<br>
Additionally, we are using 2.7, so that might change your answer.<br>
</span></blockquote>
<br>
The simplest solution is simply to convert it to a floating point number instead of an integer. float() can convert both integer and floating point(decimals) strings top a floating point number.<br>
<br>
But how do you deal with non numbers?<br>
In Python we can use a try/except construct to catch anything that fails the conversion:<br>
<br>
try:<br>
    print float(input)*12<br>
except:<br>
    print False<br>
<br>
But that's considered bad practice, it's better to put the<br>
valid errors only in the except line like this:<br>
<br>
try:<br>
    print float(input)*12<br>
except TypeError, ValueError:<br>
    print False<br>
<br>
So now Python will look out for any ValueErrors and TypeErrors<br>
during the first print operation and if it finds one will instead<br>
print False. Any other kind of error will produce the usual Python error messages.<br>
<br>
You may not have come across try/except yet, but its a powerful technique for dealing with these kinds of issues.<br>
<br>
<br>
-- <br>
Alan G<br>
Author of the Learn to Program web site<br>
<a href="http://www.alan-g.me.uk/" target="_blank">http://www.alan-g.me.uk/</a><br>
<a href="http://www.amazon.com/author/alan_gauld" target="_blank">http://www.amazon.com/author/<u></u>alan_gauld</a><br>
Follow my phopto-blog on Flickr at:<br>
<a href="http://www.flickr.com/photos/alangauldphotos" target="_blank">http://www.flickr.com/photos/<u></u>alangauldphotos</a><br>
<br>
<br>
______________________________<u></u>_________________<br>
Tutor maillist  -  <a href="mailto:Tutor@python.org" target="_blank">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="https://mail.python.org/mailman/listinfo/tutor" target="_blank">https://mail.python.org/<u></u>mailman/listinfo/tutor</a><br>
</blockquote></div><br></div>