-1/2

Duncan Booth duncan.booth at invalid.invalid
Mon Jun 23 11:00:07 EDT 2008


Lie <Lie.1296 at gmail.com> wrote:

> On Jun 23, 1:32 am, "Serve Lau" <ni... at qinqin.com> wrote:
>> What is the expected result of -1/2 in python?
> 
> 
> Operator precedence:
> Both python 2 and 3 follows the same rule for operator precedence,
> see:
> http://www.ibiblio.org/g2swap/byteofpython/read/operator-precedence.htm
> l . In -1/2, unary negative takes precedence, then division, i.e. it's
> interpreted as ((-1) / 2).
> 
> Py3k and Python 2 differences:
> Before Python 3, integer division is always rounds to minus infinity.
> In Python 3, integer division yields floats. To use integer division
> in Python 3, you use // operator.
> 
> Simple answer:
> Python 2: (-1)/2 = round(-0.5)          = -1
> Py3k:     (-1)/2 = float(-1) / float(2) = -0.5
> 
Python 2.x gives -1 or -0.5 depending on the division mode in operation and 
for -1 may also generate a deprecation warning:


C:\>python25\python -Qnew -c "print -1/2"
-0.5

C:\>python25\python -Qwarn -c "print -1/2"
-c:1: DeprecationWarning: classic int division
-1


-- 
Duncan Booth http://kupuguy.blogspot.com



More information about the Python-list mailing list