Это видео недоступно.
Сожалеем об этом.

Лучший курс по Python 6.0: float

Поделиться
HTML-код
  • Опубликовано: 17 авг 2024
  • Лучший курс по питону: 6.0
    Или "обзор исходников CPython с CPython core разработчиком".
    Тема: float в Python
    Хочу выразить большую благодарность за помощь в подготовке видео:
    - Mark Dickinson, многолетний CPython-core разработчик с практическим интересом в числах github.com/mdi...
    - Магические методы 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/sob...
    - Мой GitHub: github.com/sob...
    - Мой телеграм канал: t.me/opensourc...
    - Поддержать: boosty.to/sobo...
    - Сообщество: discord.python.ru

Комментарии • 27

  • @fenn_r
    @fenn_r Месяц назад +18

    Не только лишь все заметят ошибку в названии видео, ведь на самом деле там было
    ЛКПП 0.6000000000000001: float

  • @DAJakaRedAries
    @DAJakaRedAries Месяц назад +5

    Поставил 1..real лайк, спасибо за классное видео!

  • @yuliyao192
    @yuliyao192 Месяц назад +1

    Спасибо)) очень полезный курс, float всегда был сложным, но очень интересным

  • @MaximKorolov
    @MaximKorolov Месяц назад +1

    Спасибо, было познавательно и интересно!

  • @sergeybkirpichev6487
    @sergeybkirpichev6487 20 дней назад +1

    Было странно среди "популярных ошибок" не увидеть расстановку скобочек. Ну и вообще - усердное применение успешно усвоенных в курсе средней школы правил элементарной алгебры для всяческого "упрощения". Власти скрывают!
    Не знаю, стало ли понятно слушателям, что вообще-то одному и тому же float могут соответствовать несколько десятичных литералов (так что точное значение можно задавать только float.fromhex). Эти моменты (в т.ч. поведение repr) хорошо изложены в Tutorial (15. Floating-Point Arithmetic).

    • @sobolevn
      @sobolevn  20 дней назад

      Да, на него есть ссылка в материалах!

  • @user-qx6ln1hv4v
    @user-qx6ln1hv4v Месяц назад +1

    43 минуты пролетели незаметно, думал выпуск как обычно на 20+ минут)
    Криптобиржи часто(всегда?) используют для чисел два поля: число как int и экспоненту.
    Кажется в этом случае мы избавляемся от боли, но подозреваю что FLOPS сильно падает. Стоит ли так делать или это древнее зло, которое победит Decimal?

    • @sobolevn
      @sobolevn  Месяц назад

      Спасибо! Про ваш вопрос: не знаю, я не представляю, что делают крипто-биржи внутри. Раз используют, то возможно не просто так :)

    • @alexanderchori8154
      @alexanderchori8154 25 дней назад

      Decimal и есть число (или массив чисел в других языках) и экспонента. Да, это негативно (иногда незначительно) влияет на производительность по сравнению с обычными float. Поэтому тут скорее встаёт вопрос, есть ли поддержка Decimal в языке или СУБД.
      Для цены одного актива в другом часто используют fractions. Например, USD/RUB будет храниться как дробь Fraction(85, 1). Так можно быстро и без лишних делений посчитать стоимость N долларов в рублях - N * Fraction(85, 1), или стоимость, скажем, евро, если сначала обменять доллары на рубли, а их на евро - USD/RUB * RUB/EUR.
      Источник: я разработчик на криптобирже

  • @Anatolii_V_Novikov
    @Anatolii_V_Novikov Месяц назад +1

    1. Думал, что С++ сложный, но и в Python хватает нюансов )
    2. Почему 1 равно 1.0 и равно True для hash(.)?
    3. Кто допустил float в качестве ключа )?

    • @sobolevn
      @sobolevn  Месяц назад

      2. Если объекты равны, их hash должен быть равен: docs.python.org/3/reference/datamodel.html#object.__hash__
      3. любой hashable объект может быть ключом :)

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov Месяц назад

      @@sobolevn , по 2. Но ведь 1 != 1.0

    • @sobolevn
      @sobolevn  Месяц назад

      @@Anatolii_V_Novikov попробуйте `assert 1 == 1.0` :)

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov Месяц назад

      @@sobolevn я пробовал 1 == 1.0, выдал false

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov Месяц назад

      @@sobolevn а так-то да, если 1.0 внутри хэш-метода приводится к 1, и true приводится к интовой 1, то тогда понятно

  • @Slavaver
    @Slavaver Месяц назад +2

    Косвенно про тему флоатов Anthony выпустил любопытный ролик про аннотацию "`x: float = False` is a valid annotation??? (intermediate) anthony explains #575"

    • @sobolevn
      @sobolevn  Месяц назад

      я хотел сделать `--strict-bool`, но потом забыл про него :) github.com/python/mypy/issues/8363 возможно, как раз - повод заняться!

    • @sobolevn
      @sobolevn  Месяц назад +2

      А вот и PR: github.com/python/mypy/pull/17487

  • @ztarlitz
    @ztarlitz Месяц назад +1

    21:22 А что у python есть стандарт? вот прям стандарт, с голосованием и комитетом? что-то новенькое.

    • @sobolevn
      @sobolevn  Месяц назад +1

      Конечно. Он составной. Есть документация + PEPы + стандарты отдельных частей (например: typing typing.readthedocs.io/en/latest/spec/index.html). Коммитеты тоже есть: Steering Council, Typing Council, C-API WG, тд.

    • @ztarlitz
      @ztarlitz Месяц назад

      @@sobolevn ой не не не, все таки не корректно называть спецификацию стандартом, а советы комитетами. это все разные сущности.

    • @sergeybkirpichev6487
      @sergeybkirpichev6487 20 дней назад

      @@ztarlitz отчего-ж? потому что спецификация свободно доступна, в отличие от стандартов (например C)? И чем совет хуже комитета?! Вся власть советам!