Разъяснивший Python
Kanalga Telegram’da o‘tish
Твой проводник в омут Python'а Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/python_pssss
Ko'proq ko'rsatish7 184
Obunachilar
-224 soatlar
-177 kunlar
-5030 kunlar
Postlar arxiv
7 184
Repost from Техночат
🤢🤢🤢Проводим самый БОЛЬШОЙ розыгрыш этого лета сразу на 🤢🤢🤢🤢🤢🤢🤢 рублей
РАЗЫГРЫВАЕМ iPhone 16 Pro Max, Macbook Air M4, AirPods Pro и кучу других призов — с вас всего лишь подписка.
Для участия нужно:
🤢Быть подписанным на Техночат и Сёрч
🤢Нажать «Участвую!» под этим постом
Итоги подведём 8 сентября в 18:00 случайным образом при помощи бота. Доставка для победителя бесплатная. Всем удачи!
7 184
Раздувающийся экземпляр dict (ч.1)
Как мы видим, при каждом новом выводе словари становятся раздутыми. Почему это происходит?
CPython способен повторно использовать один и тот же объект "keys" в нескольких словарях. Это было добавлено в PEP 412 с целью уменьшить использование памяти, особенно в словарях экземпляров, где ключи (атрибуты экземпляра), как правило, являются общими для всех экземпляров.
Эта оптимизация полностью выполняется, например, для словарей, но она отключается, если нарушаются определенные допущения.
Разъяснивший Python
7 184
Замедление dict поиска
CPython имеет общую функцию поиска по словарю, которая обрабатывает все типы ключей (str, int, любой объект ...), и специализированную для общего случая словарей, состоящих только из str ключей.
Специализированная функция знает, что все существующие ключи являются строками, и использует более быстрое и простое сравнение строк для сравнения ключей вместо вызова eq метода.
При первом обращении к dict экземпляру с помощью не-str ключа он модифицируется, поэтому в будущих поисковых системах используется универсальная функция.
Разъяснивший Python
7 184
Давайте создадим гигантскую строку!
Для создании длинной строки не используйте +. В Python str является неизменяемым, поэтому левая и правая строки должны копироваться в новую строку для каждой пары конкатенаций. Если вы объедините четыре строки длиной 10, вы будете копировать (10+10) + ((10+10)+10) + (((10+10)+10)+10) = 90 символы вместо всего лишь 40 символов. Ситуация ухудшается квадратично по мере увеличения количества и размера строки
Поэтому рекомендуется использовать синтаксис .format. or % (однако они работают немного медленнее, чем + для очень коротких строк).
Или лучше, если у вас уже есть содержимое, доступное в виде итеративного объекта, тогда используйте ''.join(iterable_object) который намного быстрее.
Разъяснивший Python
7 184
Потратить на поиск работы мечты несколько лет или 3 часа?
Не знаете, с чего начать? Не уверены, в какой профессии сможете раскрыться на 100%?
Профтест, который изменит всё
За 15 минут вы поймёте, какие профессии вам подходят. Сразу после теста вы получите доступ к курсу, на котором вы больше узнаете о самых актуальных профессиях и сможете подобрать четыре по своим предпочтениям и интересам.
Работать удалённо, в гибком графике, с зарплатой от 100 000 ₽ — это не сказка, это цифровая реальность. И она ждёт вашего первого шага.
Пройдите тест сейчас — и начните учиться бесплатно.
7 184
+= быстрее
Почему +- быстрее?
+= быстрее, чем + в объединениях более двух строк, потому что первая строка (например, s1 для s1 += s2 + s3) не уничтожается при вычислении полной строки.
Разъяснивший Python
7 184
Ну, что-то здесь не так...
Почему в первом выводе у нас получилось 10, а не 100?
Это потому что мы смешали табуляцию и пробелы. Символ, непосредственно предшествующий возвращению, является "табуляцией", и в другом месте примера код имеет отступ, кратный "4 пробелам".
"tab" в последней строке square функции заменяется восемью пробелами, и она попадает в цикл.
Зато Python 3 достаточно любезен, чтобы автоматически выдавать ошибку в таких случаях.
Разъяснивший Python
7 184
Проверка аргументов функции без лишнего кода с functools.singledispatch
Когда нужно писать разные реализации одной функции в зависимости от типа аргумента, не спеши писать
if isinstance(...) — есть элегантнее способ!
Итог:
singledispatch — способ реализовать полиморфизм для функций: избавляет от длинных ветвлений по типам, упрощает поддержку и расширение кода.
Разъяснивший Python7 184
Первые навыки геймдизайна за 4 дня — бесплатно
Как придумать игровую механику, от которой невозможно оторваться?
На бесплатном мини-курсе от Skillbox вы получите базовый навык геймдизайнера — научитесь разбирать игровые механики на части и понимать, как создаются вовлекающие сценарии и игровые системы.
Это первый шаг, без которого не начинается ни одна серьёзная игра.
Ваша любимая игра когда-то началась с геймдизайна. Попробуйте сделать свою.
Пройдите мини-курс: https://go.avred.online/f80e20b80e18bb10?erid=2VfnxxcSezk&m=1
И получите в подарок 5 чек-листов для начинающих геймдизайнеров
7 184
Давайте переделаем (ч.3)
Третий фрагмент также был следствием искажения имени. Имя
__variable в инструкции return __variable было искажено до _A__variable, которое также является именем переменной, объявленной нами во внешней области видимости.
Кроме того, если искаженное имя длиннее 255 символов, произойдет усечение.
Разъяснивший Python7 184
Телепортация
Обратите внимание, что массив
numpy, созданный в energy_send функции, не возвращается, так что пространство памяти свободно для перераспределения.
numpy.empty() возвращает следующий свободный слот памяти без его повторной инициализации. Эта область памяти просто оказывается той же, которая была только что освобождена (обычно, но не всегда).
Разъяснивший Python7 184
Пропуск строк
Некоторые незападные символы выглядят идентично буквам английского алфавита, но интерпретатор считает их разными.
Встроенная ord() функция возвращает кодовую точку символа в Юникоде, а различные кодовые позиции кириллицы 'e' и латиницы 'e' оправдывают поведение нашего примера примера.
Разъяснивший Python
7 184
ТЫ под постоянным наблюдением👀
Ниже даю список каналов, которые помогут защитить твою анонимность в сети.
🔤HACK WARRIOR. - полностью авторский канал по ИБ, OSINT.
🔤secure sector. - пишут про безопасность через код, анализируют известные угрозы, чтобы тебе не пришлось.
🔤INFOSEC LIZARD - склад твоих личных инструментов безопасности в сети.
Только ты можешь позаботиться о себе.
7 184
Выводим аудио дорожку из видео
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
Разъяснивший Python
7 184
Открываем локально поисковую строку Google
Порой мы так глубоко погружаемся в написание кода, что нам неохота открывать браузер для поиска нужной информации. Установив потрясающую библиотеку google, можно делать запрос в поисковик прямо в консоли.
Разъяснивший Python
7 184
Давайте переделаем (ч.2)
Итак, чтобы получить доступ к атрибуту __honey в первом фрагменте, нам пришлось добавить _Yo в начало, что предотвратило бы конфликты с атрибутом того же имени, определенным в любом другом классе.
Но тогда почему это не сработало во втором фрагменте? Потому что искажение имен исключает имена, заканчивающиеся двойным подчеркиванием.
Разъяснивший Python
7 184
👩💻 Всем программистам посвящается!
Вот 17 авторских обучающих IT каналов по самым востребованным областям программирования:
Выбирай своё направление:
👩💻 Python — t.me/python_ready
🤔 InfoSec & Хакинг — t.me/hacking_ready
🖥 SQL & Базы Данных — t.me/sql_ready
👩💻 C/C++ — https://t.me/cpp_ready
👩💻 C# & Unity — t.me/csharp_ready
🤖 Нейросети — t.me/neuro_ready
👩💻 Java — t.me/java_ready
👩💻 Linux — t.me/linux_ready
🖼️ DevOps — t.me/devops_ready
👩💻 Frontend — t.me/frontend_ready
📱 JavaScript — t.me/javascript_ready
👩💻 Backend — t.me/backend_ready
📱 GitHub & Git — t.me/github_ready
👩💻 Весь IT — t.me/it_ready
📖 IT Книги — t.me/books_ready
👩💻 Bash & Shell — t.me/bash_ready
🖥 Design — t.me/design_ready
📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!
7 184
Давайте переделаем (ч.1)
Искажение имен используется, чтобы избежать конфликтов именования между различными пространствами имен.
В Python интерпретатор изменяет (искажает) имена членов класса, начинающиеся с __ (двойное подчеркивание, также известное как "dunder") и не заканчивающиеся более чем одним завершающим подчеркиванием, добавляя _NameOfTheClass впереди.
Разъяснивший Python
7 184
Inpinity
Как можно представить бесконечное число в python? Независимо от того, какое число вы вводите в программу, ни одно число не должно быть больше этого представления бесконечности.
Это возможно реализовать с помощью inpinity.
При этом хэш бесконечности равен 10⁵ x π. Интересно, что хэш float('-inf') в Python 3 равен "-10⁵ x π", тогда как в Python 2 "-10⁵ x e".
Разъяснивший Python
7 184
Многоточие
В Python Ellipsis это глобально доступный встроенный объект, который эквивалентен ... .
>>> ...
Ellipsis
В основном многоточие используются для нескольких целей,
1) В качестве заполнителя для кода, который еще не был написан (точно так же, как pass инструкция)
2) В синтаксисе нарезки для представления полных фрагментов в оставшемся направлении
Разъяснивший Python
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
