
On Thu, 24 Sep 2009 12:21:07 am Gerald Britton wrote:
wrong! I did use Python:
$ python3 Python 3.0.1+ (r301:69556, Apr 15 2009, 15:59:22) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information.
3/2
1.5
3//2
1
Surely we're not discussing an idea just for Python 2.x, are we?
Furthermore, classic division in Python 1.x and 2.x is harmful. Guido has publicly stated that defaulting to integer division in Python 1.x and 2.x was a mistake. In PEP 238 he calls it "a design bug". http://www.python.org/dev/peps/pep-0238/ If anyone doubts that "ordinary people" treat 3 and 3.0 the same, or that 3/2 is 1.5 rather than 1 + 1 remainder, I recommend you do a mini-survey of your family, friends and workmates. Obviously if you ask small children before they have learned about fractions, or mathematicians who have immersed themselves entirely into some field of study using only integers, you may get different results, but 6000-odd years of common practice is to treat "whole numbers" as identical to "decimal numbers where the fraction part is zero"[1]. The *lack* of distinction is so strong that we don't have a simple term to distinguish 3 from 3.0 -- both are "whole numbers". [1] I'm aware that decimal notation doesn't go back 6000 years. But the ancient Greeks and Egyptians were perfectly capable of dealing with fractions, and they too failed to distinguish between a whole number plus a fractional part of zero and a whole number on its own. -- Steven D'Aprano