November 22nd, 2007

nyaload

конкатенация

Collapse )
«a(b+c) = (ab) + (ac). Ну-ка, оспорьте это, суки.»


(перевод взят отсюда, оригинал здесь)

Python 2.5.1
>>> a = 4
>>> b = "B"
>>> c = "C"
>>> a*(b+c)
'BCBCBCBC'
>>> a*b + a*c
'BBBBCCCC'
>>> 


PS. Кстати, если определить равенство как равенство после сортировки символов в строке, то тождество снова станет верным.
nyaload

Протечка абстракций

У питона есть одна неприятная особенность: он наследует баги особенности сишного рантайма, на котором собирался (кстати, наверное это касается и других интерпретаторов).

>>> float(str(1e300 / 1e-300))
ValueError: invalid literal for float(): 1.#INF

(данный пример специфичен только для MSVC, не надо копипастить листинги со своих модных gcc, что у вас всё в порядке :).

Наверное, есть и другие несовместимости между питонами, вызванные несовместимостями в CRT "кросс-платформенного ассемблера".