ЛКПП 6.0: float
Лучший курс по питону: 6.0
Или "обзор исходников CPython с CPython core разработчиком".
Тема: float в Python
Хочу выразить большую благодарность за помощь в подготовке видео:
- Mark Dickinson, многолетний CPython-core разработчик с практическим интересом в числах github.com/mdickinson
- Магические методы float
- Способы записи float
- Неточность float
- Популярные ошибки при работе с float
- Float and double memory layout или устройство памяти float и double
- Знак, порядок, мантисса в double
- sys.float_info
- sys.float_repr_style и отображение чисел
- NaN, +Infinity, -Infinity
00:00 Вступление
01:19 Junior
06:04 Middle
18:41 Senior
41:46 Завершение
Полезные ссылки:
- Все материалы: github.com/sobolevn/the-best-...
- Мой GitHub: github.com/sobolevn
- Поддержать: boosty.to/sobolevn
- Сообщество: discord.python.ru
Пікірлер: 23
Не только лишь все заметят ошибку в названии видео, ведь на самом деле там было ЛКПП 0.6000000000000001: float
@sobolevn
12 күн бұрын
😆
Поставил 1..real лайк, спасибо за классное видео!
Спасибо, было познавательно и интересно!
Спасибо)) очень полезный курс, float всегда был сложным, но очень интересным
43 минуты пролетели незаметно, думал выпуск как обычно на 20+ минут) Криптобиржи часто(всегда?) используют для чисел два поля: число как int и экспоненту. Кажется в этом случае мы избавляемся от боли, но подозреваю что FLOPS сильно падает. Стоит ли так делать или это древнее зло, которое победит Decimal?
@sobolevn
8 күн бұрын
Спасибо! Про ваш вопрос: не знаю, я не представляю, что делают крипто-биржи внутри. Раз используют, то возможно не просто так :)
Косвенно про тему флоатов Anthony выпустил любопытный ролик про аннотацию "`x: float = False` is a valid annotation??? (intermediate) anthony explains #575"
@sobolevn
12 күн бұрын
я хотел сделать `--strict-bool`, но потом забыл про него :) github.com/python/mypy/issues/8363 возможно, как раз - повод заняться!
@sobolevn
12 күн бұрын
А вот и PR: github.com/python/mypy/pull/17487
1. Думал, что С++ сложный, но и в Python хватает нюансов ) 2. Почему 1 равно 1.0 и равно True для hash(.)? 3. Кто допустил float в качестве ключа )?
@sobolevn
9 күн бұрын
2. Если объекты равны, их hash должен быть равен: docs.python.org/3/reference/datamodel.html#object.__hash__ 3. любой hashable объект может быть ключом :)
@Anatolii_V_Novikov
9 күн бұрын
@@sobolevn , по 2. Но ведь 1 != 1.0
@sobolevn
8 күн бұрын
@@Anatolii_V_Novikov попробуйте `assert 1 == 1.0` :)
@Anatolii_V_Novikov
8 күн бұрын
@@sobolevn я пробовал 1 == 1.0, выдал false
@Anatolii_V_Novikov
8 күн бұрын
@@sobolevn а так-то да, если 1.0 внутри хэш-метода приводится к 1, и true приводится к интовой 1, то тогда понятно
21:22 А что у python есть стандарт? вот прям стандарт, с голосованием и комитетом? что-то новенькое.
@sobolevn
8 күн бұрын
Конечно. Он составной. Есть документация + PEPы + стандарты отдельных частей (например: typing typing.readthedocs.io/en/latest/spec/index.html). Коммитеты тоже есть: Steering Council, Typing Council, C-API WG, тд.
@ztarlitz
5 күн бұрын
@@sobolevn ой не не не, все таки не корректно называть спецификацию стандартом, а советы комитетами. это все разные сущности.