Python Nation🐍🇺🇦
2.83K subscribers
237 photos
2 files
158 links
Канал для всіх, хто вивчає Python: поради, приклади коду, бібліотеки, лайфхаки та актуальні новин👨‍💻🐍

По всім питанням👉 @giorg_jr

❗️Канал регулярно очищується від неактивних підписників❗️
Download Telegram
Размещайте метод __init__ в самом начале

Хотя для большинства из нас это правило очевидно, но встречаются программисты, которые “прячут” __init__ глубоко в теле класса с другими атрибутами. Располагать же его следует в самом начале класса до упоминания всех остальных методов, поскольку именно там его будут искать при чтении.

При наличии атрибутов класса метод __init__ размещается после них. Во избежание путаницы этого принципа следует последовательно придерживаться при определении всех классов проекта.
Запустить JS в коде Python? Да легко!!!

js2py может переводить и выполнять практически любой код JavaScript. js2py написан на чистом питоне и не имеет никаких зависимостей. По сути, это "реализация ядра" JavaScript на чистом Python.

Перед запуском кода установите пакет:
pip3 install js2py
Друзья, кому под силу исправить код так, чтобы он корректно работал?

Напиши в комментах, что нужно прописать вместо знаков вопросов.

Давайте узнает кто самый главный "питонодав"😂
Вопрос исчерпан.

@pythonnation
Друзья, кому под силу исправить код так, чтобы он корректно работал?

Напиши в комментах, что нужно прописать вместо знаков вопросов.

Продолжаем вычислять главного "питонодава"😂
Вращайте барабан.

Перед
запуском кода внимательно посмотрите, что он делает!
Почему Python кроссплатформенный?

В современной реализации Python транслирует инструкции исходного программного кода в промежуточное представление, известное как байт-код, и затем интерпретирует этот байт-код.

Байт-код обеспечивает переносимость программ, поскольку это платформонезависимый формат.
Почему Python медленно работает?

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

Тем не менее, всегда есть способы оптимизировать ваши приложения на Python с помощью асинхронности, инструментов профилирования и использования нескольких интерпретаторов. А для приложений, где время запуска неважно будет полезен JIT-компилятор, и соответственно интерпретатор PyPy. Для тех же частей вашего кода, где производительность критична и у вас при этом имеется много статически типизированных переменных, в качестве наиболее оптимального варианта может стать использование Cython.
This media is not supported in your browser
VIEW IN TELEGRAM
Happy New Year 2️⃣0️⃣2️⃣2️⃣ 🎄

Хочешь себе такую ёлочку?
код тут
Слабые ссылки

Слабые
ссылки позволяют получать доступ к объекту, как и обычные, однако, так сказать, они не учитываются в механизме подсчета ссылок. Другими словами, слабые ссылки не могут поддерживать объект живым, если на него не осталось больше сильных ссылок.

Согласно документации, слабые ссылки нужны для организации кэшей и хэш-таблиц из «тяжелых» объектов, когда не требуется поддерживать объект живым только силами этого самого кэша; чтобы в долгоживущей программе не кончалась память из-за хранения в кэшах большого количества уже не нужных объектов.

Встроенный модуль weakref отвечает за функциональность слабых ссылок.
This media is not supported in your browser
VIEW IN TELEGRAM
Просмотр видео в терминале

video-to-ascii это питоновский пакет, который даёт возможность просматривать видео в терминале, используя таблицу ASCII.

Установка пакета:
pip3 install video-to-ascii

Чтобы запустить видео пропишите слудующую команду:
video-to-ascii -f название_видео.mp4
match/case в Python 3.10

Часто приходится проверять не только тип данных, но и количество, что приводит к появлению огромного числа веток if/else с вызовом функций isinstance, len и обращению к элементам по индексу, ключу или атрибуту. Именно для упрощения работы и уменьшения if/else был введен новый оператор match/case.

Match/case сам решает проблему с проверкой типов данных, с проверкой значений и их количеством, что позволяет упростить логику и увеличить читаемость кода. И очень удобно, что можно объявлять переменные и помещать в них значения прямо в ветке case без использования моржового оператора.
Side effect

Функция имеет побочный эффект, если она изменяет что-либо за пределами определения функции, например: изменение аргументов, переданных функции, или изменение глобальной переменной.
Метаклассы в Python

Предположим, что вы знаете разницу между классами и объектами. Тогда метаклассы не должны быть для вас слишком уж сложными. Если кратко, то они являются классами для классов (отсюда и «мета» в их названии).

Проще говоря, в то время как классы являются чертежами для объектов, метаклассы являются чертежами для классов. Класс является описанием, когда мы создаем его экземпляр, тогда как метакласс является описанием класса, и существует только когда определен класс.

Самая простая реализация метакласса, которая ничего не делает, выглядит следующим образом👆
Форматирование текста

Модуль textwrap может использоваться для форматирования текста в ситуациях, когда требуется красивая печать. Он предлагает функциональность, аналогичную функциям заполнения абзацев, которые можно найти во многих текстовых редакторах и текстовых процессорах.
flake8

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

Flake8 умеет работать не только с PEP 8, но и с другими правилами, к тому же поддерживает кастомные плагины.

#линтер
Как работает Python?

Этап #1. Инициализация
После запуска вашей программы, Python-интерпретатор читает код, проверяет форматирование и синтаксис. При обнаружении ошибки он незамедлительно останавливается и показывает сообщение об ошибке.

Этап #2. Компиляция
Интерпретатор транслирует (переводит) исходные инструкции вашей программы в байт-код (низкоуровневое, платформонезависимое представление исходного текста). Такая трансляция необходима в первую очередь для повышения скорости — байт-код выполняется в разы быстрее, чем исходные инструкции.

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

Этап #3. Выполнение
Как только байт-код скомпилирован, он отправляется на виртуальную машину Python (PVM). Здесь выполняется байт-код на PVM.
Все мы знаем, что Python интерпретируемый язык программирования.

Интерпретатор — это программа, которая конвертирует ваши инструкции, написанные на Python, в байт-код и выполняет их. По сути интерпретатор — это программный слой между вашим исходным кодом и железом.

Существует 2 типа интерпретаторов:
простой интерпретатор. Он берет одну инструкцию, транслирует и сразу выполняет ее, а затем берет следующую инструкцию.
интерпретатор компилирующего типа. Это система из компилятора и интерпретатора. Компилятор переводит исходный код программы в промежуточное представление (байт-код), а интерпретатор (виртуальная машина) выполняет этот байт-код.

CPython:
— считается эталонной реализацией языка Python:
— интерпретатор компилирующего типа (благодаря этому достигается большее быстродействие выполнения программ).
— написан на C.
— исходный код CPython находится в открытом доступе.
— его разработка ведётся группой разработчиков под руководством Гвидо ван Россума — создателя Python.

Кроме этого, у интерпретатора CPython есть особенность — он может работать в режиме диалога (REPL — read-eval-print loop). Интерпретатор считывает законченную конструкцию языка, выполняет её, печатает результаты и переходит к ожиданию ввода пользователем следующей конструкции.

@pythonnation
⚡️ Задачка с собеседования | Уровень: #Easy

Условие:

Ваша цель — написать функцию, которая находит самые повторяющиеся слова в строке.

Пример:

text ('Am I want write code? Yeah! I like it') → I
text ('Hi! How are you? Hi! I am okay') → Hi
text ('test text test and test that again') → test

📌 Пишите ваше решение в комментариях👇

#Задачка_с_собеседования
⚡️ Pyperclip – копирование и вставка в буфер обмена

Для этого нам будет нужна библиотека pyperclip. Она выполняет самые простые функции по копированию и считыванию текста.

Установка: pip install pyperclip

Вот, что она умеет:

copy(text: str) — получает строку и записывает её в буфер обмена

paste() — возвращает текст из буфера.

Если вы последовательно скопируете два значения в буфер обмена, первое будет перезаписано. Буфер обмена может иметь только одно значение.

#pyperclip @pythonnation