Lie <[EMAIL PROTECTED]> wrote: > On Jun 23, 1:32 am, "Serve Lau" <[EMAIL PROTECTED]> 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 -- http://mail.python.org/mailman/listinfo/python-list