Было странно среди "популярных ошибок" не увидеть расстановку скобочек. Ну и вообще - усердное применение успешно усвоенных в курсе средней школы правил элементарной алгебры для всяческого "упрощения". Власти скрывают! Не знаю, стало ли понятно слушателям, что вообще-то одному и тому же float могут соответствовать несколько десятичных литералов (так что точное значение можно задавать только float.fromhex). Эти моменты (в т.ч. поведение repr) хорошо изложены в Tutorial (15. Floating-Point Arithmetic).
43 минуты пролетели незаметно, думал выпуск как обычно на 20+ минут) Криптобиржи часто(всегда?) используют для чисел два поля: число как int и экспоненту. Кажется в этом случае мы избавляемся от боли, но подозреваю что FLOPS сильно падает. Стоит ли так делать или это древнее зло, которое победит Decimal?
Decimal и есть число (или массив чисел в других языках) и экспонента. Да, это негативно (иногда незначительно) влияет на производительность по сравнению с обычными float. Поэтому тут скорее встаёт вопрос, есть ли поддержка Decimal в языке или СУБД. Для цены одного актива в другом часто используют fractions. Например, USD/RUB будет храниться как дробь Fraction(85, 1). Так можно быстро и без лишних делений посчитать стоимость N долларов в рублях - N * Fraction(85, 1), или стоимость, скажем, евро, если сначала обменять доллары на рубли, а их на евро - USD/RUB * RUB/EUR. Источник: я разработчик на криптобирже
Косвенно про тему флоатов Anthony выпустил любопытный ролик про аннотацию "`x: float = False` is a valid annotation??? (intermediate) anthony explains #575"
Конечно. Он составной. Есть документация + PEPы + стандарты отдельных частей (например: typing typing.readthedocs.io/en/latest/spec/index.html). Коммитеты тоже есть: Steering Council, Typing Council, C-API WG, тд.
2. Если объекты равны, их hash должен быть равен: docs.python.org/3/reference/datamodel.html#object.__hash__ 3. любой hashable объект может быть ключом :)