Kangaroo
2.28K subscribers
113 photos
61 files
435 links
Kangaroo — о программировании и технологиях.

Python, серверная разработка, инфраструктура, ИИ и собственные проекты. Статьи, технические разборы, эксперименты и наблюдения из практики.

Иногда — математика и котики :)

По всем вопросам: @Lodhel
Download Telegram
Channel photo updated
Почему нужно использовать "python -m pip"
Ведущая разработчица ядра и канадка Мариатта спросила в Твиттере о том, кто рассказал ей об идиоме использования python -m pip, а также попросила дать ссылку, объясняющую ее.
Channel photo updated
Изначально Интернет был задуман как всеобщая нейтральная сеть, в которой каждый может внести равный вклад и служить на благо обществу. Но сейчас большая часть интернет-ресурсов сосредоточена в руках корпораций. Они контролируют доступ к нашим важнейшим и конфиденциальным данным. Компании могут предоставлять услуги прекрасного качества, но все же это не совсем то, что предполагалось создать.

Децентрализованная система хранения информации обладает значительными преимуществами с точки зрения безопасности и эффективности, и в настоящее время она становится реальностью. Все больше и больше блокчейн-стартапов начинают реализовывать огромный потенциал технологии распределенного реестра и надстраивают новые компоненты на децентрализованной экосистеме.

@dcntr создан для того чтобы быть в курсе о проектах децентрализованных сетей.
t.me/dcntr
Сколько байт в int(1). Python
Final Results
58%
8
13%
16
7%
24
22%
32
Давайте разберёмся с тем как бы нам поменять значения в двух переменных не вводя так сказать временную переменную.

Первый способ.
Магия Python
a = 2
b = 3

a, b = b, a

Это конечно хороший способ но если кто не знает, то Python при этом создает новую переменную у себя внутри, по этому пойдем дальше.

Второй способ.
Математический.

a = 2
b = 3

a = a + b
b = a - b
a = a - b

Но и этот способ имеет свои недостатки. Это большое количество операций. Второй это область применения, только числа.

Еще 1 похожий на математический способ.
Использование xor.

a = 4
b = 5

a = a ^ b
b = a ^ b
a = a ^ b

Он так же как и математический способ имеет проблемы. Подходить для любых целочисленных значений.

Если кто знает еще способы обмена двух переменных то пишите сюда @ywjcpw , опбликуем )
🔥1
Разберемся с нашим опросом который мы опубликовали вчера вечером. В нем мы просили вас проголосовать за то сколько байт в int(1) в Python. Давайте теперь мы расскажем вам как там обстоят дела в Python с памятью на самом деле.

Приведем вам пример из кода:
a = int(1)
print(a.sizeof())

Выполним наш код в консоли на 64 битной машине: получим 24 бит.
Если выполнить данный код на 32 битной машине: 12 бит.
Столько же занимает и просто int().

obj.sizeof - возвращвет размеробъекта в битах.

Теперь вы знаете сколько байт занимает int(1) в Python.

Но давайте пойдем дальше и проверим сколько занимают другие типы данных в Python.
Возьмем самые часто используемые типы данных: int, float, tuple, str, list, dict. (размер будет указан в битах)

Int:
на 32 битной машине: 12.
на 64 битной машине: 24.
float:
на 32 битной машине: 16.
на 64 битной машине: 24.
str:
на 32 битной машине: 21+длина.
на 64 битной машине: 37+длина .
list:
на 32 битной машине: 20+4*длина.
на 64 битной машине: 40+8*длина.
tuple:
на 32 битной машине: 12+4*длина.
на 64 битной машине: 24+8*длина.

С dict дела обстоят интереснее:
на 32 битной машине:
длина <= 5, 124 бит.
длина >5, 124+12*длину.
на 64 битной машине:
длина <= 5, 248 бит.
длина >5, 248+24*длину.

Ну что же теперь мы знаем сколько бит выделяет Python для разных типов данных.

Ну а как сам Python работает с памятью, как работает “сборщик мусора” мы расскажем в другом посте.
Следите за обновлениями)