for / while else doesn't make sense
Ben Bacarisse
ben.usenet at bsb.me.uk
Mon May 23 15:55:52 EDT 2016
Chris Angelico <rosuav at gmail.com> writes:
> On Tue, May 24, 2016 at 2:51 AM, Ben Bacarisse <ben.usenet at bsb.me.uk> wrote:
>> Chris Angelico <rosuav at gmail.com> writes:
>>
>>> On Tue, May 24, 2016 at 12:29 AM, Ben Bacarisse <ben.usenet at bsb.me.uk> wrote:
>>>> Right, but this is to miss the point. Let's say that 4000 years have
>>>> defined 1/3 to be one third, but Python 3 (as do many programming
>>>> languages) defines 1/3 to be something very very very very close to one
>>>> third, and *that* idea is very very very very new!
>>>
>>> Have you ever written one third as 0.33333333 ?
>>
>> Not that I recall, but, obviously, I can't be sure. I can't even tell
>> without counting how many 3s there are there. Why do you ask?
>>
>>> Because that's also
>>> something very very close to one third.
>>
>> Yes it is, but I don't get what point you are making.
>
> You asserted that representing one third as something almost, but not
> exactly, one third was a new idea.
Ah, I didn't mean to assert that at all. I meant to say that the new
thing is that the approximation is tucked away in a representation
largely hidden from the person doing the arithmetic. Its floats in
programming languages that are new, not approximations.
> It is not. Ever since ancient
> times, approximations have been used. Python is no different from
> anything else; the only reason it _looks_ different is that it's an
> approximation in binary, converted to decimal for display.
It's often hard for people to see that actual value[1] in a program, but
not when they do arithmetic by hand. This is what confused me about
your question. Were I to approximate 1/3 with 0.333 (on paper) there
should be no surprises down the line. I know that 3 times it won't be
1, but 0.999. Confusion creeps in when the approximation is not
explicit in the eye of the beginner. Obviously, to you and me, 1/3 is
clearly an approximation in Python -- we know that / explicitly makes
floats -- but not everyone knows the full consequences of that right
away. I doubt anyone, beginner or not, would be surprised that
0.33333333 is not actually one third (though they *might* be surprised
if it's not 33333333/100000000).
[1] Not being a Python expert I don't know how you show that actual
value of a float. What is the Pythonic way to do that?
--
Ben.
More information about the Python-list
mailing list