[Python-ideas] [Wild Idea] Static Ducks
Steven D'Aprano
steve at pearwood.info
Thu Sep 24 02:03:24 CEST 2009
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
More information about the Python-ideas
mailing list