python_academy | Unsorted

Telegram-канал python_academy - Python Academy

51359

Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu

Subscribe to a channel

Python Academy

Удобная работа с файловыми путями

В стандартной библиотеке есть максимально удобный пакет pathlib, позволяющий осуществлять различную работу с файловыми путями.

Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.

Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.

Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.

#pathlib

Читать полностью…

Python Academy

Форматируемые шаблоны строк

Модуль string из стандартной библиотеки содержит интересный класс Template, который позволяет вполне удобно создавать шаблоны строк для дальнейшего форматирования.

Такой способ появился ещё в Python 2.4, как замена %-форматированию (PEP 292), но популярным так и не стал. Поддерживает передачу значений по имени и использует $-синтаксис как в PHP.

В новых проектах, конечно, используются чаще всего f-строки и иногда метод format, но всё же о Template стоит хотя бы знать на случай, если придется работать с легаси кодом.

#строки

Читать полностью…

Python Academy

Нейросетевая модель Сбера GigaChat обрела новую модальность

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

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

Есть и второй важный апдейт: объём запроса увеличился в четыре раза — с 8 до 32 тысяч токенов. Раньше действовало ограничение, равное 12 страницам А4. Теперь же лимит расширили до 48 страниц, что позволит поддерживать более длинные диалоги.

Обновлённый GigaChat уже доступен бесплатно в веб-версии и Telegram-боте.

Читать полностью…

Python Academy

Получаем и задаем лимит рекурсии

В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.

Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.

И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.

#рекурсия #лимиты

Читать полностью…

Python Academy

Стартовала Квалификация на седьмой международный чемпионат Yandex Cup 2024. В этом году участники погрузятся в древние эпохи, чтобы решить задачи цивилизаций прошлого с помощью IT.

Всего шесть направлений: фронтенд, бэкенд, мобильная разработка, ML, аналитика и алгоритмы. Последнее открыто для участников со всего мира, а аналитика доступна также для юниоров от 14 лет. Призовой фонд чемпионата — 12,5 млн рублей. Квалификация продлится до 20 октября, полуфинал — 2 ноября, а финал пройдет в Ташкенте в декабре.

На картинках — примеры ситуаций, с которыми предстоит справиться в рамках отборочных этапов: настроить систему разгрузки драккаров в скандинавском порту викингов, помочь композитору в создании алгоритма для написания музыки или придумать систему архивации бамбуковых табличек астрономов династии Хань.

Победители также получат возможность пройти упрощенное собеседование в Яндекс! Регистрируемся тут.

Читать полностью…

Python Academy

Создание процессов

Класс Process из встроенного модуля multiprocessing позволяет создавать процессы без прямого вызова функции fork, про которую писали раньше на канале.

При создании экземпляра Proccess необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start. Внутри метода start будет вызван fork и будет исполнена функция в отдельном процессе.

Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией join.

#процессы #multiprocessing

Читать полностью…

Python Academy

Всегда хотели стать частью крупной IT-компании? Тогда новая программа ускоренного отбора Young&&Yandex для вас!

Подайте заявку на участие в Intern Week Offer и получите заветный бейдж сотрудника Яндекса.

Доступно 3 направления: машинное обучение, аналитика данных и бэкенд-разработка (C++, Python, Java).

Вот, что надо сделать, чтобы стать частью команды:

— Подать заявку с 10 по 28 октября и получить доступ к тестовому заданию
— Выполнить задание с 28 октября по 4 ноября
— Пройти собеседование с командами и получить офер на стажировку

Подать заявку и стать стажером можно по ссылке. Ждём вас!

Читать полностью…

Python Academy

Аргументы командой строки

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

Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.

#sys

Читать полностью…

Python Academy

Возврат нескольких значений из функции

Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.

Читать полностью…

Python Academy

Кажется, реклама в РФ — ВСЁ.

YouTube замедляют. Meta признан экстремистом. А Google сворачивает последние сервисы. Остаётся только раздавать листовки или вешаться на билборде?

Это могло быть правдой... Если бы не Telegram, который стал самой прибыльной соцсетью в Мире. И это знают хитрые рекламодатели, скупая рекламу в годных каналах.

А сделать лучшие подборки и забрать слоты по самой вкусной цене им помогает биржа TGmarket

Это крупнейший маркетплейс рекламы, где не придётся тратить время на маркировку, согласования или нудный поиск проверенных каналов.

Неважно, вы рекламодатель или владелец канала — с ними бизнес станет эффективнее: t.me/+egAZL5kcqKI2YWYy

Читать полностью…

Python Academy

SCons

SCons — это современная система сборки программного обеспечения, основанная на Python. Она предназначена для автоматизации процесса компиляции и сборки проектов, делая его более эффективным и надежным.

#для_продвинутых

Читать полностью…

Python Academy

Функция reload()

Функция reload() в Python перезагружает ранее импортированный модуль. Это означает, что код модуля выполняется заново, и любые изменения в модуле становятся доступными.

Функция reload() принимает в качестве аргумента объект модуля. Этот объект должен быть ранее импортированным модулем.

#для_начинающих

Читать полностью…

Python Academy

Фреймворк Flask

Один из самых популярных фреймворков для разработки бэкенда. Предназначен для быстрого лёгкого старта работы в создании как простых, так и сложных приложений.

Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи pip, затем создаём объект-приложение, далее с помощью декоратора указываем путь в адресной строке и определяем функцию, которая возвращает отображаемый текст. После запуска приложения результат можно увидеть в браузере по адресу http://localhost:5000/.

Читать полностью…

Python Academy

С 1 октября открыта запись на программу льготного обучения для граждан РФ.

Цель программы - подготовка квалифицированных кадров для дефицитных направлений IT-сектора, помощь в прохождении стажировки и трудоустройстве.

Для всех, кто пройдет регистрацию до 10 октября, предусмотрена компенсация обучения.

Для участия - заполните анкету и пройдите тест (занимает не более 3 минут).

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

Читать полностью…

Python Academy

Поиск уникальных слов в текстовом файле в Python

Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.

Подробнее можно почитать здесь.

Читать полностью…

Python Academy

Находим опечатки в тексте

Полезный пакет spellchecker позволяет находить опечатки в тексте и даже дает возможные варианты исправлений.

Под капотом модуль использует алгоритм расстояния Левенштейна. А сам код основан на статье, написанной в блоге Питера Норвига. Короче, реализация интересная, советую поизучать.

Но даже если не вникать в подробности, то пакет использовать крайне легко. Примеры использования класса SpellChecker и его методов correction и candidates показаны на картинке.

Пакет поддерживает 6 языков, включая русский. Но за подробностями отправляю вас читать документацию.

#spellchecker

Читать полностью…

Python Academy

Красивые таблицы в терминале

PrettyTable – это простая библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить привычным способом через pip.

Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.

Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами. Так что возможностей у этого модуля предостаточно.

#таблицы #prettytable

Читать полностью…

Python Academy

Тестирование на pytest

pytest — ближе по духу к Python нежели unittest, который накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.

При разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.

Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.

Читать полностью…

Python Academy

Операции с zip архивами 

Для работы с zip файлами можно использовать встроенный модуль zipfile. Если кто не помнит, то zip файл — это архив, содержащий сжатые файлы. 

Просмотреть содержимое архива можно с помощью функции printdir, а извлечь все файлы можно вызвав extractfile

Также этот модуль позволяет создавать свои zip архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. 

#zipfile

Читать полностью…

Python Academy

Валидаторы данных

Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.

Модуль validators позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.

Помимо этого, validators позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.

#validatoras

Читать полностью…

Python Academy

Превью из длинного текста

Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.

Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.

Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.

#строки #textwrap

Читать полностью…

Python Academy

Полезные функции модуля itertools

Модуль itertools - инструмент в Python для работы с итерируемыми объектами. Он предоставляет различные функции для создания и манипулирования итераторами, что делает его незаменимым инструментом для разработчиков.

Давайте рассмотрим некоторые полезные функции из этого модуля:

1. itertools.count(): Эта функция создает бесконечный итератор, который генерирует последовательность чисел, начиная с заданного значения. Это удобно использовать, например, при создании уникальных идентификаторов.

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

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

4. itertools.chain(): Эта функция объединяет несколько итерируемых объектов в один, что упрощает итерацию по ним как по одному объекту.

5. itertools.groupby(): Эта функция позволяет группировать элементы итерируемого объекта на основе заданного ключа. Это особенно полезно при анализе и обработке данных.

И это далеко не все функции, доступные в модуле itertools. Он предоставляет множество возможностей для более эффективной итерации и манипуляции данными.

Читать полностью…

Python Academy

Определяем тип изображения с помощью Python

Установка модуля - pip install imghdr

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

Подробнее можно почитать здесь.

Читать полностью…

Python Academy

Простой, но мощный веб-фреймворк

Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.

Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.

Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу http://localhost:5000/ и посмотреть результат.

#модули

Читать полностью…

Python Academy

Что такое глубокая копия?

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

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

Читать полностью…

Python Academy

Typeshed

Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.

#для_продвинутых

Читать полностью…

Python Academy

Почему бы не использовать свои навыки Python, чтобы шагнуть в мир Web3? Узнай, как применить свои знания в блокчейн-разработке и начать создавать софты для децентрализованных приложений.

Курс «Web3 Python-разработчик» от команды hodlmod.eth — это идеальная возможность для разработчиков из мира Web2. Мы начинаем с основ Python и переходим к созданию сложных Web3 приложений. Ты научишься писать софт для Телеграм-тапалок, разрабатывать торговых и арбитражных ботов и создавать любые софты для работы с блокчейном.

Этот курс идеально подойдёт, если:

- Ты хотел начать программировать в Web3, но не знал, с чего начать.
- Ты знаешь Python и хочешь применить свои навыки в новой перспективной области блокчейна.
- Тебе интересно создание приложений, которые могут взаимодействовать с блокчейном и смарт-контрактами.

Наши уроки доступны сразу после старта, так что ты сможешь обучаться в своём темпе, одновременно работая и обучаясь. А доступ к закрытому сообществу с экспертами и единомышленниками поможет тебе решить любые вопросы и погрузиться в сферу Web3.

Готов начать новый этап своей карьеры и попробовать себя в децентрализованной разработке? Присоединяйся к нам!

Более подробно почитать про курс - hodlmod.eth/XbyTlLOoD5D#B26v">здесь

Cтоимость $555, длительность 3 месяца, стартуем 10 октября на платформе aiostudy.com

@aio_supp - поддержка по всем вашим вопросам.

Читать полностью…

Python Academy

Превращаем PDF в текст

Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.

Модуль pdftotext создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip, а использовать его проще простого. Все основные операции представлены на картинке выше.

Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.

#pdftotext

Читать полностью…

Python Academy

Функции только с позиционными параметрами

Если с помощью inspect посмотреть на то, как объявлена встроенная функция float, то увидим, что есть входный параметр x и еще какой-то непонятый слэш.

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

Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.

#функции

Читать полностью…

Python Academy

Быстрый deque

deque предпочтительнее, чем обычный список, когда нужны более быстрые операции добавления и вытаскивания элементов с начала и конца контейнера.

deque обеспечивает линейную сложность O(1) для операций добавления и выталкивания, у стандартного списка сложность по этим операциям O(n).

Для deque есть возможность использовать стандартные функции — sum, min, max и другие.

Читать полностью…
Subscribe to a channel