Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
911 links
№ 4974297878

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

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

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

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Что будет выведено при выполнении кода?

Пояснение
⬇️
В inner переменная x обозначена как nonlocal, поэтому изменение внутри inner влияет на x в outer, и функция возвращает local nonlocal.

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿16👍9
🤔13🆒5👍2😢2🥰1
➡️ Memray — профилирование памяти для Python

Memray — это современный инструмент для профилирования памяти в Python, разработанный командой Bloomberg. Он позволяет детально отслеживать выделение и использование памяти в ваших приложениях, что помогает выявлять утечки и оптимизировать производительность.

Глубокий анализ: Memray отслеживает все выделения памяти, включая те, что происходят в нативных расширениях на C/C++.
Гибкие отчёты: Генерирует отчёты в виде текстовых файлов, графов и HTML-страниц для наглядного представления данных.
Поддержка многопоточности: Корректно работает с многопоточными приложениями, обеспечивая точный анализ.
Интеграция с Jupyter: Позволяет визуализировать данные профилирования прямо в Jupyter Notebook.

🔗 Ссылочка на доку

Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
⚙️ pathlib.Path.glob()

В Python метод Path.glob() из модуля pathlib используется для поиска файлов и директорий, соответствующих шаблону. Он мощнее, чем простое перечисление файлов, и поддерживает поиск с использованием подстановочных знаков.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥3
Вопрос на собеседовании

Как работает менеджер контекста (context manager) в Python, и как создать свой собственный?

Ответ ⬇️
Менеджер контекста — это механизм в Python, который автоматически управляет ресурсами, такими как файлы или сетевые соединения. Основное преимущество использования менеджера контекста — автоматическое освобождение ресурсов (например, закрытие файла), даже если произошла ошибка.

Пример использования ⚙️
Для создания менеджера контекста можно использовать:

• Ключевые слова with и open (для встроенных менеджеров контекста).
• Метод __enter__() и __exit__() (для собственных классов).
• Декоратор @contextmanager из модуля contextlib.

# Создание менеджера контекста через класс
class FileManager:
def __init__(self, filename, mode):
self.file = None
self.filename = filename
self.mode = mode

def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file

def __exit__(self, exc_type, exc_value, traceback):
if self.file:
self.file.close()

# Использование собственного менеджера контекста
with FileManager('example.txt', 'w') as f:
f.write('Привет, мир!')

# Файл автоматически закрывается после выхода из блока "with"


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤‍🔥3
⚙️ textwrap.dedent()

В Python метод textwrap.dedent() удаляет общие отступы из многострочного текста. Это полезно для упрощения форматирования строк, особенно в документации или больших блоках текста.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🏆2🆒1
➡️ Masonite — мощный Python-фреймворк для веб-приложений

Masonite — это современный и простой в использовании фреймворк для создания веб-приложений. Он предлагает удобный API, поддержку архитектуры MVC и встроенные инструменты для миграций и тестирования.

Поддержка инверсии управления (IoC) для гибкого управления зависимостями.
Интеграция с популярными инструментами, такими как ORM Orator.
Удобная система маршрутизации и шаблонов.

🔗 Ссылочка на доку

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

Пояснение
⬇️
Генератор в Python останавливает свою работу, когда достигает инструкции return или конца функции. При этом он выбрасывает исключение StopIteration. В данном коде генератор yield возвращает значения 0, 1, и 2 при каждом вызове next(). После того, как итерации закончены, вызывается return 'Done', что приводит к выбросу StopIteration, и его сообщение ('Done') может быть прочитано, если исключение перехватывается вручную. Поэтому при попытке вызова next(gen) после последнего значения происходит исключение.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🤔13👍9😱2
🏁 Python разрабатывает API, как спорткар🏎 разгоняется до сотни — с FastAPI всё быстро, надёжно и элегантно 🏁

🛠 Если вам нужны инструменты для создания веб-приложений, которые не тормозят, не тратят лишних ресурсов и готовы к продакшену — ждём вас 26 ноября в 20:00 мск на бесплатном открытом уроке, где мы разберём, как FastAPI переворачивает мир разработки API. Узнаете всё: от маршрутизации до работы с базами данных и асинхронного программирования. А еще покажем, как создать простое API буквально за пару минут.

FastAPI — это не только скорость, но и простота в использовании. А для тех, кто хочет глубже нырнуть в разработку с Python, будет скидка на курс «Python Developer. Professional».

🔥Спикер Валентин Шилин — старший программист с опытом более 15 лет на С++, С#, JavaScript, Python, Scala, Java; аналитик данных; эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera.

🔴 Зарегистрируйтесь прямо сейчас: https://clck.ru/3EZYic

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍3🥰1
⚙️ zip_longest()

В Python функция zip_longest() из модуля itertools позволяет объединять итерируемые объекты разной длины, заполняя отсутствующие значения с помощью заполнителя (fillvalue). Это полезно для работы с несоответствующими наборами данных.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤‍🔥2🔥2
⚙️ itertools.cycle

В Python функция itertools.cycle() создаёт бесконечный цикл по переданному итерируемому объекту. Это полезно для повторения элементов последовательности.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🆒1
👩‍💻 Задача по Python: Поиск первого неповторяющегося символа в строке

Напишите функцию, которая находит первый символ в строке, который не повторяется. Если все символы повторяются, функция должна вернуть None.

Пример:

print(first_unique_char("swiss"))  # Ожидаемый результат: "w"
print(first_unique_char("aabb")) # Ожидаемый результат: None


Решение задачи на картинке

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥5💔2
Что будет выведено при выполнении кода?

Пояснение
⬇️
Декоратор заменяет функцию say_hello на функцию wrapper. Когда вызывается say_hello, выполняется wrapper, который сначала выводит Before function call, затем вызывает оригинальную функцию func() (say_hello) и выводит её результат Hello!. После этого завершается фразой After function call.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Вопрос на собеседовании

Как работает функция zip() в Python, что произойдет, если переданные итерируемые объекты имеют разную длину, и как можно преобразовать результат работы этой функции обратно в оригинальные последовательности?

Ответ ⬇️
Функция zip() берет несколько итерируемых объектов и объединяет их в один итератор, который возвращает кортежи, сформированные из элементов входных последовательностей. Если переданные итерируемые объекты имеют разную длину, zip() завершает свою работу, как только самая короткая из последовательностей исчерпается.

Чтобы преобразовать результат zip() обратно в исходные последовательности, можно использовать распаковку с * (оператор звездочка), которая разделяет кортежи на отдельные списки.


Пример использования ⚙️
# Объединяем два списка
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30]

# zip объединяет элементы двух списков
zipped = zip(names, ages)
print(list(zipped)) # [('Alice', 25), ('Bob', 30)]

# Разъединяем с помощью распаковки
zipped_again = zip(names, ages) # Создаем заново, так как zip() исчерпаем
unzipped_names, unzipped_ages = zip(*zipped_again)

print(unzipped_names) # ('Alice', 'Bob')
print(unzipped_ages) # (25, 30)


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34🥰1
Друзья, планирую в историях публиковать разбор задачек с собеседований и смешные мемасики.

Проголосуйте пожалуйста 🐍

https://yangx.top/boost/Python_per_month
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43❤‍🔥12🔥2
⚙️ itertools.accumulate()

В Python функция itertools.accumulate() вычисляет накопительные суммы или результаты других операций (например, произведение) над итерируемым объектом. Полезна для анализа последовательностей.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥2
⚙️heapq.nlargest() и heapq.nsmallest()

В Python функции heapq.nlargest() и heapq.nsmallest() позволяют получить n наибольших или наименьших элементов из коллекции. Это удобно для задач, связанных с выборкой экстремальных значений.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
⚙️ string.Template

В Python класс string.Template из модуля string позволяет подставлять значения в строки с использованием плейсхолдеров. Это удобный способ работы с шаблонами текста.

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