Python Learning
31.9K subscribers
1.98K photos
8 videos
7 files
990 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
#Вопросы_с_собеседования
Как проверить файл .py на синтаксические ошибки, не запуская его?

Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.

Используется py_compile очевидно:
1. открываем командную строку/терминал.
2. переходим в каталог, содержащий файл .py, который вы хотите проверить
3. выполняем: python -m py_compile yourfile.py где yourfile.py - это имя файла, который вы хотите проверить.

Эта команда выполнит проверку файла и выведет описание любых синтаксических ошибок, которые были найдены, или пустой вывод, если ошибок нет.

Когда это может быть полезно? Например, если код большой и в процессе задействует много ресурсов, а нужно всего лишь удостовериться в его валидности.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🤔 Как это работает? — Рекурсия на примере факториала

Рекурсия — это техника, при которой функция вызывает саму себя. Функция факториала — классический пример использования рекурсии. Давайте разберём, как это работает.

➡️ Как это работает:

Если n == 0, функция возвращает 1 (базовый случай).
В остальных случаях функция вызывает саму себя с аргументом n - 1.
Результаты этих вызовов умножаются на текущее значение n.

Развернутый аналог:
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result


Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
⚙️ tempfile.NamedTemporaryFile()

Метод tempfile.NamedTemporaryFile() из модуля tempfile создаёт временный файл, который автоматически удаляется при закрытии. Это удобно для временного хранения данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
⚙️ abc.ABCMeta

Класс abc.ABCMeta из модуля abc используется для создания абстрактных базовых классов (Abstract Base Classes). Это позволяет определить методы, которые должны быть реализованы в подклассах, и предотвращает создание экземпляров базового класса.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚫 Антипаттерн недели: Использование вложенных циклов для обработки больших данных

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

✔️ Используйте встроенные функции и методы, такие как zip, enumerate или библиотеку numpy, чтобы сократить количество циклов.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🚫 Антипаттерн недели: Неоптимальная фильтрация данных через циклы

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

✔️ Используйте встроенные функции, такие как filter() или list comprehension, чтобы сделать код более читаемым и производительным.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
⚙️ traceback.format_exc()

Метод traceback.format_exc() из модуля traceback используется для получения форматированной строки трассировки исключения. Это полезно для логирования ошибок или их анализа.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1
Что будет выведено при выполнении кода?

Пояснение
⬇️
Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Переменные x и y ссылаются на один объект, поэтому x is y возвращает True. Переменная z — новый объект с тем же содержимым, но другой областью в памяти, поэтому x is z возвращает False.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🚫 Антипаттерн недели: Неоптимальная проверка на принадлежность в списке

Использование списков для проверки на принадлежность с оператором in приводит к линейному времени выполнения, что может быть медленным для больших наборов данных.

✔️ Используйте set для проверки на принадлежность, чтобы снизить время выполнения до O(1).

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
⚙️ contextlib.nested

Модуль contextlib в Python позволяет обрабатывать несколько ресурсов с помощью менеджеров контекста более лаконично. Это полезно, когда работа идёт с большим числом файлов или объектов.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Изучили базу по Python и не знаете, как кодить еще лучше?
Пройдите бесплатный курс по настройке инструментов Python в Академии Selectel.

Рассказываем, что изучать после основ и как не зациклиться на типовых навыках на старте. В программе курса:

🔸 освоим Python-инструменты для упрощения работы с кодом: SonarLint, Myry и другие;
🔸 протестируем библиотеку Tkinter, чтобы создавать приложения с графическим интерфейсом;
🔸 расскажем, как парсить данные с веб-сайтов и закрепить полученные знания на практике.

Все материалы бесплатные. Проходите курс в комфортном темпе в Академии Selectel: https://slc.tl/4vqkv

Реклама. АО "Селектел". erid:2W5zFG1xKC4
👍1
⚙️ concurrent.futures.as_completed()

Метод concurrent.futures.as_completed() позволяет обрабатывать завершение асинхронных задач в порядке их завершения. Это полезно для параллельной обработки, где важно начать работу с результатами, как только они готовы.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔1
⚙️ shutil.disk_usage()

Метод shutil.disk_usage() из модуля shutil предоставляет информацию о месте на диске, включая общий объём, используемое и доступное пространство. Это полезно для мониторинга состояния файловой системы.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
⚙️ itertools.permutations()

Метод itertools.permutations() генерирует все возможные перестановки элементов заданной последовательности. Это полезно для задач, связанных с комбинаторикой.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ __slots__

Метод __slots__ позволяет явно указать, какие атрибуты может иметь объект класса, что значительно уменьшает потребление памяти и ускоряет доступ к атрибутам. Это особенно полезно при создании большого количества экземпляров класса.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔍Тестовое собеседование на Middle Python с Senior из X5 уже завтра!

Уже завтра(11 ноября) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Олег, старший разработчик в X5, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Олег будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Олегу

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос на собеседовании

Как работает weakref в Python, и когда его стоит использовать?

Ответ ⬇️
Модуль weakref позволяет создавать слабые ссылки на объекты, которые не предотвращают их сборку мусора. Это полезно, когда нужно отслеживать объекты без продления их времени жизни, например, в кешах или при управлении зависимостями в больших структурах данных.

Пример использования ⚙️
import weakref

class Data:
def __del__(self):
print("Объект удалён")

obj = Data()
weak_ref = weakref.ref(obj)

print(weak_ref()) # <__main__.Data object at 0x...>
del obj
print(weak_ref()) # None (объект удалён)


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3