и посмотреть медиа
Code on a Napkin - Python coding
и посмотреть медиа
Channel about programming in Python and other languages. Simple explanations and codes.
Channel about programming in Python and other languages. Simple explanations and codes.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Resource for those interested in programming. Focus on Python, but covers other topics as well. Simple examples and breakdowns.
Знаете ли вы, что в Python -7 // 2 равно -4, а не -3? Целочисленное деление в Python работает не так, как в C-подобных языках. 7 // 2 дает 3 и там и там, но -7 // 2 в Python это -4, а в C это -3. Разница в том, как округляется результат – к нулю или к минус бесконечности. print(-7 // 2) # -4 print(int(-7 / 2)) # -3 -7 / 2 это -3.5. От этого числа можно округлить к нулю (получится -3, это поведение int()) или вниз, к минус бесконечности (получится -4, это поведение // в Python). C-подобные языки используют первый вариант, Python – второй. Это называется floor division. Из этого следует, что % в Python тоже работает иначе чем в C – потому что должен сохраняться инвариант (a // b) * b + (a % b) == a: a, b = -7, 2 print(a // b) # -4 print(a % b) # 1 print((a // b) * b + (a % b)) # -7 Раз -7 // 2 == -4, остаток обязан быть 1, потому что -4 * 2 + 1 == -7. В C тот же инвариант выполняется при других значениях: -7 // 2 == -3 и -7 % 2 == -1, и -3 * 2 + (-1) == -7. Знак остатка в Python всегда совпадает со знаком делителя, в C – со знаком делимого. И отдельно – PEP 238 (Python 3) сделал / всегда float division, даже для целых: print(4 / 2) # 2.0 print(type(4 / 2)) # print(4 // 2) # 2 print(type(4 // 2)) # / в Python 3 всегда возвращает float, даже когда оба операнда целые и делятся нацело. Целочисленный результат – это //. В Python 2 поведение / зависело от типов: 4 / 2 давало 2, а 4.0 / 2 давало 2.0. PEP 238 убрал эту неоднозначность. // округляет к минус бесконечности, а не усекает к нулю. % следует за этим выбором – знак остатка совпадает со знаком делителя. / всегда возвращает float, начиная с Python 3. На этом небольшая серия про операторы по просьбе нашей читательницы Usla подходит к концу. Со времени начала этой рубрики читателей в канале стало существенно больше. Возможно, вам тоже будет интересно почитать про какие-то темы в формате "Кусочков кода" – дайте знать в комментариях! Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!