Pull to refresh

Comments 7

Стоит явно оговоривать, что по умолчанию питон и многие другие языки не делают округления которому учили в худшем в мире советском образовании — 0.5 -> 1, ибо такое округление приводит к искажению при анализе данных — смещению в большую сторону.
Поэтому по умолчанию половина округляется до бижайшего чётного т.е. то вниз, то вверх.
Впрочем, как я понял все виды округления создают какое-то искажение, поэтому идеального алгоритма округления нет (иначе он был бы везде по умолчанию).
Косяк питона в том, что вообще есть функция с названием round и без всяких без параметров (тут пхп окахзался молодцом), ведь в математике такой операции нет и непонятно что ожидать от такой функции, хотя они и следует рекомендациям стандарта на плавающие числа.

Зависит от версии


Python 2.7.12 (default, Nov 12 2018, 14:36:49) 
>>> round(0.5)
1.0
>>> round(1.5)
2.0

Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
>>> round(0.5)
0
>>> round(1.5)
2

For the built-in types supporting round(), values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0, and round(1.5) is 2).
https://docs.python.org/3.5/library/functions.html#round
Ну второй питон я из головы выбросил, пока нужды нет ретроградствовать.
С ANY явно должен существовать более простой способ, без явного инстанцирования. С stdout можно встрять при использовании rpdb.
sys.stdout — это обёртка, позволяющая писать строковые, а не байты. Эти строковые значения автоматически кодируются с помощью sys.stdout.encoding:

доступно только для чтения и равно кодировке по умолчанию, которую можно настраивать с помощью переменной среды PYTHONIOENCODING

замечательно меняется на лету
sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='CP1251', buffering=1)

Уже импортированные модули не будут загружаться снова. Команда import foo просто ничего не сделает. Однако она полезна для переимпортирования модулей при работе в интерактивной среде. В Python 3.4+ для этого нужно использовать importlib

Не работает если скрипт и модули находятся в zip архиве.
Sign up to leave a comment.