😁1
Почему это важно
Можно ожидать, что 𝚖𝚊𝚡(..., 𝚔𝚎𝚢=𝚏) вернёт 𝚏(𝚡), но это не так. Если нужен именно результат функции, придётся вызвать её отдельно: 𝚊𝚋𝚜(𝚖𝚊𝚡(𝚗𝚞𝚖𝚜, 𝚔𝚎𝚢=𝚊𝚋𝚜)) или 𝚖𝚊𝚡(𝚊𝚋𝚜(𝚡) 𝚏𝚘𝚛 𝚡 𝚒𝚗 𝚗𝚞𝚖𝚜).
Please open Telegram to view this post
VIEW IN TELEGRAM
✍8😁1
👍3
Гвидо ван Россум намеренно выбрал округление вниз: при таком подходе остаток всегда попадает в диапазон [𝟶, 𝚗) при положительном делителе. Это удобно для вычисления номера клетки в сетке, индекса в кольцевом буфере, дня недели. Гвидо объяснял: если нужно округление к нулю, можно написать 𝚒𝚗𝚝(𝚊 / 𝚋), а вот получить «правильное» округление вниз из округления к нулю — сложнее, поэтому Python выбрал более полезный вариант по умолчанию.
Почему это важно
При портировании кода между языками или при работе с отрицательными координатами разница в поведении % может привести к трудноуловимым багам: один и тот же код даст разные результаты в Python и в C/Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1