Делаем ошибки более читаемыми
В Python
есть удобный модуль pretty_errors
, который делает стандартный вывод исключений и их traceback
более удобным для чтения и красивым в целом.
Установить его можно через пакетный менеджер pip
. А для того, чтобы он заработал, достаточно импортировать его в ваш код.
Как результат, вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
#python #pretty_errors
Работаем с файловыми путями
В стандартной библиотеке есть максимально удобный пакет pathlib
для простой работы с файловыми путями.
Для представления пути к файлу есть класс Path
, с объектами которого уже можно производить операции. Например, методы exists()
и is_dir()
проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join()
на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Итого, пакет pathlib
может стать частичной заменой os
в некоторых случаях при работе с файловыми путями.
#pathlib
Подсчет количества слов в текстовом файле
На этом примере в Python мы прочитаем текстовый файл и посчитаем количество слов в нем.
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress
.
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля ipaddress
есть и много других интересных возможностей, прочитать о которых можно здесь.
#ipaddress
Управление Docker контейнерами с помощью docker-pydocker-py
– это официальная библиотека Python
для Docker
, предоставляющая API
для взаимодействия с Docker Daemon
. С её помощью можно автоматизировать процессы создания, запуска, остановки и удаления контейнеров, работы с образами, сетями и томами Docker.
import docker
# Создание клиента
client = docker.from_env()
# Запуск контейнера
container = client.containers.run("ubuntu:latest", "echo Hello, docker-py!", detach=True)
# Получение логов контейнера
print(container.logs().decode())
# Остановка и удаление контейнера
container.stop()
container.remove()
Docker
, используя переменные окружения текущей сессии. Затем мы запускаем контейнер из образа ubuntu:latest
, выпо
лняем в нем команду echo
, выво
дим логи работы контейнера и в конце останавливаем и удаляем контейнер.# Получение списка всех образов
images = client.images.list()
# Вывод информации о каждом образе
for image in images:
print(f'ID: {image.id}, Теги: {image.tags}')
Временные файлы
В стандартной библиотеке Python есть модуль tempfile
, который содержит классы и методы для корректной работы со временными файлами и директориями.
Функция TemporaryFile
создает временный файл в системной директории и возвращает файлоподобный объект.
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
#tempfile
PyAutoGUI
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
Хочешь пройти путь от Джуна до Мидла, чтобы повысить зарплату и навыки?
Приходи на бесплатный Тестовый урок по Python вместе с опытным разработчиком.
На Тестовом уроке ты:
🔹Оценишь свои знания.
🔹Напишешь код (даже если раньше никогда этого не делал).
🔹Получишь подробную обратную связь.
🔹Построишь индивидуальную программу обучения.
🔹Узнаешь, как наши ученики попадают на стажировку и обучаются до уровня “Мидл”.
👉Запишись на Тестовый урок после прохождения небольшого опроса в боте.
Реклама: erid 2Vtzqx3GHVw , ООО "ДЕВМАН", ИНН 5001149108
Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид, при этом сохраняя всю функциональность программы.
Цель подобных действий заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Таким образом, другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor
, предназначенная именно для этого. Пример использования этого пакета в терминале представлен выше на картинке.
#pyarmor
Уже сто раз начинал изучать программирование, но всегда выгорал и бросал на полпути?
Ничего удивительного! Программирование – это сложная для самостоятельного изучения сфера, ведь очень часто нужны не видеоуроки, а совет живого человека здесь и сейчас, комфортная обстановка и поддержка единомышленников.
Именно это можно получить в «Школе 21» (проект Сбера✔️ по БЕСПЛАТНОМУ обучению программированию с 0).
Чем отличается от других курсов / школ:
• Методика «Равный - равному»
• Нет расписания, оценок и менторов
• Оплачиваемая стажировка во время основного обучения
• Тебе не нужно платить! Совсем! Ни за что!
Тех, кто готов освоиться в IT, приобрести новую профессию или улучшить навыки в текущей, приглашаем стать абитуриентами на оффлайн интенсиве в Великом Новгороде
• старт 1 апреля, продолжительность 26 дней (документы уже принимаются)
• учеба и проживание в инновационном кампусе Новгородской технической школы
• это абсолютно БЕСПЛАТНО
Подписывайся и узнавай подробности: весенний набор Великий Новгород 2024г
За подписку дарим 🎁 - гайд о том, как стать успешным программистом
Реклама. ООО «Цифровая жажда» Erid 2Vtzqv2Ric5
Программа бакалавриата в Центральном университете от Тинькофф с грантом до 100% для сильных и мотивированных абитуриентов!
Грант можно получить на одно из направлений бакалавриата по искусственному интеллекту, разработке и бизнес-аналитике. Помимо диплома и практико-ориентированного образования студенты получат:
- Персонализацию учебной траектории;
- Стажировку в одной из лучших ИТ-компании страны;
- Личного ментора на все время обучения;
- Доступ к современному кампусу в центре Москвы.
Получить полную информацию и оставить заявку можно здесь.
erid:2VtzqxXiVgy
Реклама, АНО ВО «Центральный университет», ИНН 7743418023
Использование модуля secrets для генерации случайных значений
Модуль secrets
, встроенный в Python
, предназначен для создания криптографически защищенных случайных чисел. Это особенно полезно для генерации надежных паролей, аутентификационных токенов и других безопасных данных, благодаря использованию возможностей операционной системы.
Применение модуля secrets
просто и напоминает работу с модулем random
. Вот некоторые из его функций:
- secrets.choice(collection)
выбирает и возвращает случайный элемент из предоставленной коллекции.
- secrets.randbelow(n)
генерирует случайное целое число в пределах от 0
до n
.
- secrets.randbits(n)
создает целое число из n
случайных бит.
- secrets.token_bytes(n)
выдает случайную последовательность байт длиной в n
байт.
- token_hex(n)
предоставляет случайную строку из n
байт, преобразованную в шестнадцатеричный формат.
- token_urlsafe(n)
генерирует URL-безопасную строку длиной в n
байт, закодированную в Base64
.
Также, в модуле присутствует класс SystemRandom
, поддерживающий большинство методов модуля random
.
#python #secrets #random
Использование Docker вместе с Python Docker
- это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать ваше приложение со всем его окружением и зависимостями в один компактный исполняемый пакет. Это обеспечивает его быстрый запуск и согласованную работу в любой среде.
Зачем его использовать?
- Упрощение настройки среды: Docker
избавляет от фразы "у меня работает, а у тебя нет". Все необходимые зависимости, библиотеки и окружение можно упаковать в контейнер, который будет работать одинаково на любой машине.
- Быстрая доставка и развертывание: С Docker
вы можете легко и быстро развернуть своё приложение в любой среде, будь то облачная платформа или локальный сервер.
- Изоляция приложений: Каждое приложение работает в своем контейнере, не влияя на работу других приложений и системы в целом.
#python #docker
Делаем простой интерфейс используя tkintertkinter
- это стандартная библиотека для создания графического пользовательского интерфейса (GUI) в Python
. Она предоставляет простой и удобный способ создания оконных приложений с использованием виджетов, таких как кнопки, текстовые поля, списки и многое другое.
Хотя tkinter
может показаться менее мощным по сравнению с некоторыми другими библиотеками GUI для Python
, такими как PyQt
или wxPython
, она остается популярным выбором для начинающих разработчиков и для создания простых и удобных в использовании GUI-приложений.
#python #tkinter
Проверяем скорость интернета
Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела.
У объекта класса Speedtest
методы download()
и upload()
выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
#python #speedtest
Приглашаем в Гостиную к Алисе!
«Гостиная Алисы. Не один дома» — это митап от команды Яндекса для middle+ бэкендеров: доклады о том, как устроена Алиса, Умные устройства, Беспилотные технологии и нетворкинг в неформальной обстановка
🔸 Павел Капля, руководитель продуктовой разработки Алисы. Расскажет, как запускали Новые возможности — и что пришлось изменить в нашем помощнике, чтобы заставить её думать по новому
🔸 Марат Мавлютов, руководитель службы разработки роботов-доставщиков. Объяснит, как наши роботы-доставщики видят мир вокруг себя, строят маршрут, ориентируются в толпе и проезжают светофоры
18 апреля, 19:00
Москва
Зарегистрироваться можно здесь.
Реклама ООО "Яндекс"
ИНН 7736207543
Возвращаем значение по указанному ключу с помощью метода setdefault()
Метод setdefault()
в Python возвращает значение по указанному ключу из словаря. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Метод setdefault()
имеет два параметра:
— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Работаем с USBPyUSB
— это библиотека, которая обеспечивает легкий доступ к USB
. Имеет поддержку изохронной передачи, если её поддерживает бэкенд.
Основные методы для работы с USB
, такие как find()
, show_devices()
и т. д, хранятся в usb.core
.
Пакет usb.util
содержит вспомогательные функции.
Функция find()
используется для поиска устройств, подключенных к системе.
Также есть реализация внешнего и внутреннего интерфейса, для изоляции API
от деталей реализации системы. Связующим звеном между двумя слоями является интерфейс IBackend
. PyUSB
поставляется со встроенными бэкэндами для libusb 1.0,
libusb 0.1
и OpenUSB
.
#python #PyUSB
Backend-разработчики, расчищайте график на 13, 14 апреля. Авито проводит Weekend Offer! Нанимаем без привязки к языку программирования.
Мы предлагаем:
✔️прокачку навыков Go - и PHP-разработки;
✔️платформенные и продуктовые команды;
✔️комьюнити из 1000+ инженеров для обмена опытом;
✔️работу с микросервисной архитектурой, автоматизацией поддержки и другими ведущими проектами компании;
Подавайте заявку до 11 апреля и приходите на интервью.
Если вы хотите стать разработчиком, то вот ваш золотой билет — курс «Python-разработчик» от Академии Eduson.
→ В нём более 200 уроков и столько же практики: задач с проверкой от эксперта, упражнений в интерактивной рабочей тетради и «песочнице».
→ Один на один вас с курсом не бросят — в течение года на связи будет личный куратор.
→ За время обучения вы освоите Пайтон до крепкого уровня junior, а заодно соберёте портфолио из 7 работ.
→ Вы найдёте работу или деньги за курс вернут. И это не обещание на словах — всё прописано в договоре.
Влюбитесь в профессию с бесплатных блоков. На них вы погрузитесь в основы создания и управления продуктами, поймете, чем занимается Python-разработчик и как устроена работа в IT. А потом уже выберите — проходить программу до конца или нет.
Переходите по ссылке, оставляйте заявку и вводите промокод ПИТОН — с ним вы получите скидку 65% и личную консультацию в подарок.
Реклама. ООО "Эдюсон", ИНН 7729779476, erid: LjN8Kad6b
Встречайте GigaCode — российский AI-инструмент для ускорения работы с кодом!
Отличная новость для разработчиков — у них есть возможность воспользоваться AI-помощником*, который ускоряет работу с кодом.
GigaCode поддерживает 15 языков программирования и может предлагать полные конструкции функций, циклов и других элементов кода. AI-ассистента можно использовать в любой привычной среде разработки, такой как IDEA, PyCharm, VSCode, Jupyter и других. Он генерирует варианты завершения кода в режиме реального времени, что ускоряет и упрощает процесс работы.
GigaCode развивается вместе c сервисом GigaChat. В AI-ассистенте есть нейросетевые модели, которые обучены на больших корпусах исходного кода и специализируются на определенных задачах разработки. А по опыту команд в Сбере, GigaCode может сокращать время для создания кода до 25%.
AI-ассистент доступен для использования на площадке GitVerse — платформе для работы с исходным кодом от СберТеха. Здесь можно размещать проекты с открытым и закрытым кодом, вести совместную разработку и участвовать в жизни комьюнити.
Чтобы получить ранний доступ к GigaCode, зарегистрируйтесь на GitVerse. Проект доступен всем желающим.
Не упустите возможность ускорить свою работу с кодом!
*AI, artificial intelligence — искусственный интеллект
Асинхронный фреймворк для разработки сетевых приложений Twisted
Фреймворк предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования.
Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные. Twisted также предоставляет возможности для работы с асинхронными задачами, таймерами, и другими асинхронными концепциями. Это позволяет создавать эффективные и отзывчивые сетевые приложения.
#python
Библиотека символьной математики для Python SymPy
В отличие от численных вычислений, символьная математика работает с математическими объектами, такими как переменные, выражения и уравнения, в абстрактной форме, а не приближенно численно.
SymPy позволяет проводить символьные вычисления, что означает, что вы можете работать с математическими выражениями в их аналитической форме.
#python
Получение аудиопотока с микрофона
Библиотека PyAudio
предоставляет возможности для записи аудиопотока с различных устройств. PyAudio
работает посредством кросс-платформенной библиотеки PortAudio
(поэтому необходимо заранее установить пакет разработки portaudio19-dev
).
В приведенном примере мы создаем объект класса PyAudio
и открываем поток с рядом констант для настройки аудиопотока, поступающего с микрофона (для выбора другого устройства нужно передать его номер в качестве аргумента input_device_index
).
Данный объект потока позволяет считывать с устройства с помощью метода stream.read()
. Полученную информацию мы можем использовать для дальнейшего анализа и модификации.
В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл wav
.
#pyaudio #audio
Метод join у строк
У строк есть полезный метод str.join()
, который принимает на вход итерируемый объект, элементами которого также должны быть строки.
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#python #string
Поверхностное копирование
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Регистрируйтесь на конкурсы на площадке GitVerse и получайте возможность выиграть 500 тыс. руб!
Объявляем о начале регистрации на конкурсы от GitVerse в рамках олимпиады «IT-Планета 2024».
Вас ждут два трека, увлекательные задания и призовой фонд в размере 500 тыс. рублей *!
До 31 марта регистрируйтесь в конкурсе и проходите отборочное тестирование на платформе для разработчиков GitVerse от СберТеха. Можно выбрать из двух направлений:
👉 «Прикладное программирование if...else»
Это конкурс для разработчиков в возрасте от 18 до 35 лет, которые создают прикладное ПО.
Требования к участникам — знание C/C++/Java/Python, понимание алгоритмов и умение применять их на практике.
Вас ждут прикладные задачи, связанные с разработкой серверной части. А в случае успешного прохождения второго этапа — очный финал!
Подробные условия конкурсов и регистрация.
👉 «Разработка игр – GameDev»
Это соревнование для разработчиков игр в возрасте от 18 до 35 лет. Участвовать можно самостоятельно или вместе с командой до 4 человек.
Требования — отличное понимание игровых механик, знание всех аспектов движков и умение выбирать правильное решение для прототипирования игры.
Каждый конкурс состоит из трех этапов: отборочное тестирование, основной этап — отправка проектов или решение прикладных задач, — и очный финал.
Подробные условия конкурсов и регистрация.
Следите за новостями и удачи в конкурсах!
*За вычетом НДФЛ
👨💻 Как управлять командой, если сотрудники находятся в разных городах? Ведь руководитель не может следить за настроением подчинённых на удалёнке. Помочь может виртуальное пространство от Яндекс 360 с инструкцией о том, как лучше организовать рабочий процесс.
О выстраивании работы в разных часовых поясах и сохранении эффективности даже на дистанционке ребята расскажут 20 марта в 11:00 по Москве. Ещё есть время, чтобы зарегистрироваться на вебинар, сделать это можно здесь 👈
Ждем тебя на мероприятии «GitVerse: открой вселенную кода» от СберТеха
29 марта в 10:00 СберТех проведет онлайн-презентацию, на которой расскажет о GitVerse – платформе для работы с исходным кодом. GitVerse позволяет создавать проекты с открытым и закрытым исходным кодом и развивать их вместе с ИТ-сообществом. На платформе можно организовывать совместную работу, привлекать к проектам новых участников, комментировать код и назначать задачи.
О чем поговорим на мероприятии:
· Тренды разработки и роль открытого ПО в современном ИТ
· Возможности GitVerse и планы развития
· GigaCode – AI-помощник разработчика (AI, artificial intelligence — искусственный интеллект)
· Участие комьюнити в проекте
· Пакет облачных сервисов и его преимущества для разработчиков
· Обзор интересных репозиториев на GitVerse
· Реальные кейсы разработки и оптимизации с помощью GitVerse
· Общение в прямом эфире
Регистрируйся на мероприятие на сайте.
Обещаем: будем интересно и полезно!
Ипотека в Москве по низкой ставке
Level предлагают оформить IT-ипотеку по полной стоимости от 5,582 до 6,502% годовых. У вас есть возможность снизить ставку до 0,99% годовых. Предложение доступно тем, кто работает в аккредитованной Минцифры России IT-компании не меньше трёх месяцев.
Если вам меньше 35 лет, можно оформить IT-ипотеку вне зависимости от уровня дохода. Специалистам от 35 до 50 лет одобряют ипотеку, если они подходят под условия месячного заработка.
Вы сможете до 15 месяцев платить по ставке 0,99% годовых. Конкретный срок определяется в зависимости от проекта. В акции участвуют проекты Level Академическая, Южнопортовая, Нижегородская, Селигерская, Мичуринский и Бауманская.
Когда льготный период закончится, ставка будет всего 5%.
Заявку можно подать до 31 марта. Действуйте быстро — и воспользуйтесь отличным шансом приобрести своё жильё. Подробности о проекте читайте на сайте девелопера.