Path: csiph.com!usenet.pasdenom.info!dedibox.gegeweb.org!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.004 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'exception': 0.03; 'exception.': 0.07; 'python': 0.09; 'integers': 0.09; 'meaningful': 0.09; 'option:': 0.09; 'zero.': 0.09; 'exceptions.': 0.16; 'integer.': 0.16; 'integers,': 0.16; 'nan': 0.16; 'subject:arithmetic': 0.16; '(on': 0.22; 'to:2**1': 0.23; 'raise': 0.24; 'header:In-Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'compiled': 0.27; "doesn't": 0.28; 'division': 0.29; "i'm": 0.29; 'point': 0.31; 'url:python': 0.32; 'point,': 0.33; 'to:addr :python-list': 0.33; 'likely': 0.33; 'but': 0.36; 'url:org': 0.36; 'url:library': 0.36; 'possible': 0.37; 'why': 0.37; 'subject:: ': 0.38; 'nothing': 0.38; 'url:docs': 0.38; 'sure': 0.38; 'instead': 0.39; 'to:addr:python.org': 0.39; 'received:192': 0.39; 'received:192.168': 0.40; 'most': 0.61; 'received:204': 0.72; 'divide': 0.84 Date: Thu, 23 Aug 2012 11:28:56 +0200 From: Laszlo Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0 MIME-Version: 1.0 To: Chris Angelico , python-list@python.org Subject: Re: Guarding arithmetic References: <8b9a5844-66b0-4940-946a-5e626462cdce@googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 14 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1345714142 news.xs4all.nl 6882 [2001:888:2000:d::a6]:51456 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:27715 > That can work ONLY if the division of 1/0 doesn't raise an exception. > This is why the concept of NaN exists; I'm not sure if there's a way > to tell Python to return NaN instead of bombing, but it's most likely > only possible with floating point, not integer. For integers, Python will always raise an exception when you try to divide by zero. And integers has nothing to do with NaN. Because NaN is meaningful for floating point numbers only. Python can be compiled to raise floating point exceptions. (On Python 2, this is a compile time option: FPECTL. On Python 3, this can be configured runtime: http://docs.python.org/library/fpectl.html )