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

Поделиться
HTML-код
  • Опубликовано: 14 окт 2024

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

  • @普京的手机
    @普京的手机 10 дней назад +1

    Кстати, nan также есть для комплексных чисел. Можно получить (nan+nanj) из 1e1000j / float('inf').

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

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

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

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

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

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

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

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

  • @sergeybkirpichev6487
    @sergeybkirpichev6487 2 месяца назад +1

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

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

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

  • @普京的手机
    @普京的手机 10 дней назад

    По-моему, сейчас двоичную запись нецелых чисел в школах не пропускают. Это действительно не такая сложная тема.

  • @ВладиславГнатюк-л4ш
    @ВладиславГнатюк-л4ш 3 месяца назад +1

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

    • @sobolevn
      @sobolevn  3 месяца назад

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

    • @alexanderchori8154
      @alexanderchori8154 2 месяца назад

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

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

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

    • @sobolevn
      @sobolevn  3 месяца назад

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

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov 3 месяца назад

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

    • @sobolevn
      @sobolevn  3 месяца назад

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

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov 3 месяца назад

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

    • @Anatolii_V_Novikov
      @Anatolii_V_Novikov 3 месяца назад

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

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

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

    • @sobolevn
      @sobolevn  3 месяца назад

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

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

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

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

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

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

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

    • @ztarlitz
      @ztarlitz 3 месяца назад

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

    • @sergeybkirpichev6487
      @sergeybkirpichev6487 2 месяца назад +1

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

    • @普京的手机
      @普京的手机 10 дней назад

      ​@@sergeybkirpichev6487да, согласен.