A bug I found in Python

Nicodemus nicodemus at globalite.com.br
Sun Mar 30 04:09:31 CEST 2003


Bwahuahuahaua. Priceless.

Tim Peters wrote:

>[Jp Calderone]
>  
>
>>  I have used Python for many minutes now, but I have recently discovered
>>    
>>
>some surprising behavior!
>
>I salute you for lasting so long.  Most people give up on Python after a few
>seconds.  We appreciate that you took valuable time to inform us of the
>language's flaws.  You should stop now, though, lest it consume your life.
>
>  
>
>>  When I attempt to add two integers together, the result is a third,
>>different integer!
>>    
>>
>
>Math isn't Guido's stong suit, despite his degrees in the topic.  It might
>help to think of Python as doing Dutch Math, where it's often the case that
>integers *nobody* has ever seen before pop up out of nowhere, for no reason
>at all.  This happens a lot.
>
>  
>
>>  Here is an example of this surprising behavior:
>>
>>      def biffle_buffle_bam(x, y):
>>          z = 10
>>          print 'Hello world'
>>          return anotherFunctionIWrote(x, y)
>>
>>      print biffle_bam_baffle(10, -10)
>>
>>  As you can clearly see, when this is run, 0 is printed out!
>>I think this is very surprising behavior, since I did not type 0
>>into my program at all, only 10 and -10.
>>    
>>
>
>Yes, it's clearly a bug in Python.  What's happening is that it saw the 0 in
>"10", and the zero in "-10", and figured 0 was the most popular digit.   As
>is so often the case, Python sacrificed accuracy for popularity.
>
>  
>
>>  Maybe this is documented somewhere, but I am too busy adding integers
>>together by hand to look up the answer.  Maybe if Python were less
>>surprising I would not have to do this!
>>    
>>
>
>You're absolutely right, and I apologize for the needless pain you've
>suffered.
>
>  
>
>>  Can anyone explain why this design flaw was placed into Python?
>>    
>>
>
>Just a combination of Guido trying to be popular, and, frankly, stupidity.
>For the same reason, in
>
>  
>
>>>>.1
>>>>        
>>>>
>0.10000000000000001
>  
>
>
>Guido tries to be so popular by printing lots of zeroes that he forgets he
>already printed the 1, so prints it again.  It's outrageous.
>
>
>  
>







More information about the Python-list mailing list