On Fri, Sep 7, 2012 at 10:53 PM, Ramyasri Dodla <ramyasr...@gmail.com> wrote: > I am brand new to python. checking over basic stuff. I came across the > problem while doing so. If any body aware of the problem, kindly respond me. > >>>> 5/10 > 0 >>>> - 5/10 > -1 > > The second case also should yield a 'zero' but it is giving a -1
You're clearly using Python 2, because in Python 3, the / operator will return a float instead (so these would return 0.5 and -0.5 respectively). But it's helpful to mention what Python version you're using when you ask for help :) The reason for this is that / (or in Python 3, //) rounds toward negative infinity, not toward zero. This allows the modulo operator (%) to return a positive number, while still maintaining the normal expectation that: (x//y)*y + (x%y) == x for any two integers x and y. Hope that helps! ChrisA -- http://mail.python.org/mailman/listinfo/python-list