Регистрируйтесь на конкурсы на площадке GitVerse и получайте возможность выиграть 500 тыс. руб!
Объявляем о начале регистрации на конкурсы от GitVerse в рамках олимпиады «IT-Планета 2024».
Вас ждут два трека, увлекательные задания и призовой фонд в размере 500 тыс. рублей *!
До 31 марта регистрируйтесь в конкурсе и проходите отборочное тестирование на платформе для разработчиков GitVerse от СберТеха. Можно выбрать из двух направлений:
👉 «Прикладное программирование if...else»
Это конкурс для разработчиков в возрасте от 18 до 35 лет, которые создают прикладное ПО.
Требования к участникам — знание C/C++/Java/Python, понимание алгоритмов и умение применять их на практике.
Вас ждут прикладные задачи, связанные с разработкой серверной части. А в случае успешного прохождения второго этапа — очный финал!
Подробные условия конкурсов и регистрация.
👉 «Разработка игр – GameDev»
Это соревнование для разработчиков игр в возрасте от 18 до 35 лет. Участвовать можно самостоятельно или вместе с командой до 4 человек.
Требования — отличное понимание игровых механик, знание всех аспектов движков и умение выбирать правильное решение для прототипирования игры.
Каждый конкурс состоит из трех этапов: отборочное тестирование, основной этап — отправка проектов или решение прикладных задач, — и очный финал.
Подробные условия конкурсов и регистрация.
Следите за новостями и удачи в конкурсах!
*За вычетом НДФЛ
Объявляем о начале регистрации на конкурсы от GitVerse в рамках олимпиады «IT-Планета 2024».
Вас ждут два трека, увлекательные задания и призовой фонд в размере 500 тыс. рублей *!
До 31 марта регистрируйтесь в конкурсе и проходите отборочное тестирование на платформе для разработчиков GitVerse от СберТеха. Можно выбрать из двух направлений:
👉 «Прикладное программирование if...else»
Это конкурс для разработчиков в возрасте от 18 до 35 лет, которые создают прикладное ПО.
Требования к участникам — знание C/C++/Java/Python, понимание алгоритмов и умение применять их на практике.
Вас ждут прикладные задачи, связанные с разработкой серверной части. А в случае успешного прохождения второго этапа — очный финал!
Подробные условия конкурсов и регистрация.
👉 «Разработка игр – GameDev»
Это соревнование для разработчиков игр в возрасте от 18 до 35 лет. Участвовать можно самостоятельно или вместе с командой до 4 человек.
Требования — отличное понимание игровых механик, знание всех аспектов движков и умение выбирать правильное решение для прототипирования игры.
Каждый конкурс состоит из трех этапов: отборочное тестирование, основной этап — отправка проектов или решение прикладных задач, — и очный финал.
Подробные условия конкурсов и регистрация.
Следите за новостями и удачи в конкурсах!
*За вычетом НДФЛ
Использование модуля secrets для генерации случайных значений
Модуль
Применение модуля
-
-
-
-
-
-
Также, в модуле присутствует класс
#python #secrets #random
Модуль
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
Поверхностное копирование
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты.
При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.
#python
Метод join у строк
У строк есть полезный метод
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#python #string
У строк есть полезный метод
str.join()
, который принимает на вход итерируемый объект, элементами которого также должны быть строки.Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#python #string
Уже сто раз начинал изучать программирование, но всегда выгорал и бросал на полпути?
Ничего удивительного! Программирование – это сложная для самостоятельного изучения сфера, ведь очень часто нужны не видеоуроки, а совет живого человека здесь и сейчас, комфортная обстановка и поддержка единомышленников.
Именно это можно получить в «Школе 21» (проект Сбера✔️ по БЕСПЛАТНОМУ обучению программированию с 0).
Чем отличается от других курсов / школ:
• Методика «Равный - равному»
• Нет расписания, оценок и менторов
• Оплачиваемая стажировка во время основного обучения
• Тебе не нужно платить! Совсем! Ни за что!
Тех, кто готов освоиться в IT, приобрести новую профессию или улучшить навыки в текущей, приглашаем стать абитуриентами на оффлайн интенсиве в Великом Новгороде
• старт 1 апреля, продолжительность 26 дней (документы уже принимаются)
• учеба и проживание в инновационном кампусе Новгородской технической школы
• это абсолютно БЕСПЛАТНО
Подписывайся и узнавай подробности: весенний набор Великий Новгород 2024г
За подписку дарим 🎁 - гайд о том, как стать успешным программистом
Реклама. ООО «Цифровая жажда» Erid 2Vtzqv2Ric5
Ничего удивительного! Программирование – это сложная для самостоятельного изучения сфера, ведь очень часто нужны не видеоуроки, а совет живого человека здесь и сейчас, комфортная обстановка и поддержка единомышленников.
Именно это можно получить в «Школе 21» (проект Сбера✔️ по БЕСПЛАТНОМУ обучению программированию с 0).
Чем отличается от других курсов / школ:
• Методика «Равный - равному»
• Нет расписания, оценок и менторов
• Оплачиваемая стажировка во время основного обучения
• Тебе не нужно платить! Совсем! Ни за что!
Тех, кто готов освоиться в IT, приобрести новую профессию или улучшить навыки в текущей, приглашаем стать абитуриентами на оффлайн интенсиве в Великом Новгороде
• старт 1 апреля, продолжительность 26 дней (документы уже принимаются)
• учеба и проживание в инновационном кампусе Новгородской технической школы
• это абсолютно БЕСПЛАТНО
Подписывайся и узнавай подробности: весенний набор Великий Новгород 2024г
За подписку дарим 🎁 - гайд о том, как стать успешным программистом
Реклама. ООО «Цифровая жажда» Erid 2Vtzqv2Ric5
Получение аудиопотока с микрофона
Библиотека
В приведенном примере мы создаем объект класса
Данный объект потока позволяет считывать с устройства с помощью метода
В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл
#pyaudio #audio
Библиотека
PyAudio
предоставляет возможности для записи аудиопотока с различных устройств. PyAudio
работает посредством кросс-платформенной библиотеки PortAudio
(поэтому необходимо заранее установить пакет разработки portaudio19-dev
).В приведенном примере мы создаем объект класса
PyAudio
и открываем поток с рядом констант для настройки аудиопотока, поступающего с микрофона (для выбора другого устройства нужно передать его номер в качестве аргумента input_device_index
). Данный объект потока позволяет считывать с устройства с помощью метода
stream.read()
. Полученную информацию мы можем использовать для дальнейшего анализа и модификации. В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл
wav
. #pyaudio #audio
Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид, при этом сохраняя всю функциональность программы.
Цель подобных действий заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Таким образом, другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека
#pyarmor
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид, при этом сохраняя всю функциональность программы.
Цель подобных действий заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Таким образом, другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека
pyarmor
, предназначенная именно для этого. Пример использования этого пакета в терминале представлен выше на картинке. #pyarmor
Библиотека символьной математики для Python SymPy
В отличие от численных вычислений, символьная математика работает с математическими объектами, такими как переменные, выражения и уравнения, в абстрактной форме, а не приближенно численно.
SymPy позволяет проводить символьные вычисления, что означает, что вы можете работать с математическими выражениями в их аналитической форме.
#python
В отличие от численных вычислений, символьная математика работает с математическими объектами, такими как переменные, выражения и уравнения, в абстрактной форме, а не приближенно численно.
SymPy позволяет проводить символьные вычисления, что означает, что вы можете работать с математическими выражениями в их аналитической форме.
#python
Хочешь пройти путь от Джуна до Мидла, чтобы повысить зарплату и навыки?
Приходи на бесплатный Тестовый урок по Python вместе с опытным разработчиком.
На Тестовом уроке ты:
🔹Оценишь свои знания.
🔹Напишешь код (даже если раньше никогда этого не делал).
🔹Получишь подробную обратную связь.
🔹Построишь индивидуальную программу обучения.
🔹Узнаешь, как наши ученики попадают на стажировку и обучаются до уровня “Мидл”.
👉Запишись на Тестовый урок после прохождения небольшого опроса в боте.
Реклама: erid 2Vtzqx3GHVw , ООО "ДЕВМАН", ИНН 5001149108
Приходи на бесплатный Тестовый урок по Python вместе с опытным разработчиком.
На Тестовом уроке ты:
🔹Оценишь свои знания.
🔹Напишешь код (даже если раньше никогда этого не делал).
🔹Получишь подробную обратную связь.
🔹Построишь индивидуальную программу обучения.
🔹Узнаешь, как наши ученики попадают на стажировку и обучаются до уровня “Мидл”.
👉Запишись на Тестовый урок после прохождения небольшого опроса в боте.
Реклама: erid 2Vtzqx3GHVw , ООО "ДЕВМАН", ИНН 5001149108
Асинхронный фреймворк для разработки сетевых приложений Twisted
Фреймворк предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования.
Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные. Twisted также предоставляет возможности для работы с асинхронными задачами, таймерами, и другими асинхронными концепциями. Это позволяет создавать эффективные и отзывчивые сетевые приложения.
#python
Фреймворк предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования.
Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные. Twisted также предоставляет возможности для работы с асинхронными задачами, таймерами, и другими асинхронными концепциями. Это позволяет создавать эффективные и отзывчивые сетевые приложения.
#python
PyAutoGUI
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
Встречайте GigaCode — российский AI-инструмент для ускорения работы с кодом!
Отличная новость для разработчиков — у них есть возможность воспользоваться AI-помощником*, который ускоряет работу с кодом.
GigaCode поддерживает 15 языков программирования и может предлагать полные конструкции функций, циклов и других элементов кода. AI-ассистента можно использовать в любой привычной среде разработки, такой как IDEA, PyCharm, VSCode, Jupyter и других. Он генерирует варианты завершения кода в режиме реального времени, что ускоряет и упрощает процесс работы.
GigaCode развивается вместе c сервисом GigaChat. В AI-ассистенте есть нейросетевые модели, которые обучены на больших корпусах исходного кода и специализируются на определенных задачах разработки. А по опыту команд в Сбере, GigaCode может сокращать время для создания кода до 25%.
AI-ассистент доступен для использования на площадке GitVerse — платформе для работы с исходным кодом от СберТеха. Здесь можно размещать проекты с открытым и закрытым кодом, вести совместную разработку и участвовать в жизни комьюнити.
Чтобы получить ранний доступ к GigaCode, зарегистрируйтесь на GitVerse. Проект доступен всем желающим.
Не упустите возможность ускорить свою работу с кодом!
*AI, artificial intelligence — искусственный интеллект
Отличная новость для разработчиков — у них есть возможность воспользоваться AI-помощником*, который ускоряет работу с кодом.
GigaCode поддерживает 15 языков программирования и может предлагать полные конструкции функций, циклов и других элементов кода. AI-ассистента можно использовать в любой привычной среде разработки, такой как IDEA, PyCharm, VSCode, Jupyter и других. Он генерирует варианты завершения кода в режиме реального времени, что ускоряет и упрощает процесс работы.
GigaCode развивается вместе c сервисом GigaChat. В AI-ассистенте есть нейросетевые модели, которые обучены на больших корпусах исходного кода и специализируются на определенных задачах разработки. А по опыту команд в Сбере, GigaCode может сокращать время для создания кода до 25%.
AI-ассистент доступен для использования на площадке GitVerse — платформе для работы с исходным кодом от СберТеха. Здесь можно размещать проекты с открытым и закрытым кодом, вести совместную разработку и участвовать в жизни комьюнити.
Чтобы получить ранний доступ к GigaCode, зарегистрируйтесь на GitVerse. Проект доступен всем желающим.
Не упустите возможность ускорить свою работу с кодом!
*AI, artificial intelligence — искусственный интеллект
Временные файлы
В стандартной библиотеке Python есть модуль
Функция
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
#tempfile
В стандартной библиотеке Python есть модуль
tempfile
, который содержит классы и методы для корректной работы со временными файлами и директориями.Функция
TemporaryFile
создает временный файл в системной директории и возвращает файлоподобный объект.Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
#tempfile
Если вы хотите стать разработчиком, то вот ваш золотой билет — курс «Python-разработчик» от Академии Eduson.
→ В нём более 200 уроков и столько же практики: задач с проверкой от эксперта, упражнений в интерактивной рабочей тетради и «песочнице».
→ Один на один вас с курсом не бросят — в течение года на связи будет личный куратор.
→ За время обучения вы освоите Пайтон до крепкого уровня junior, а заодно соберёте портфолио из 7 работ.
→ Вы найдёте работу или деньги за курс вернут. И это не обещание на словах — всё прописано в договоре.
Влюбитесь в профессию с бесплатных блоков. На них вы погрузитесь в основы создания и управления продуктами, поймете, чем занимается Python-разработчик и как устроена работа в IT. А потом уже выберите — проходить программу до конца или нет.
Переходите по ссылке, оставляйте заявку и вводите промокод ПИТОН — с ним вы получите скидку 65% и личную консультацию в подарок.
Реклама. ООО "Эдюсон", ИНН 7729779476, erid: LjN8Kad6b
→ В нём более 200 уроков и столько же практики: задач с проверкой от эксперта, упражнений в интерактивной рабочей тетради и «песочнице».
→ Один на один вас с курсом не бросят — в течение года на связи будет личный куратор.
→ За время обучения вы освоите Пайтон до крепкого уровня junior, а заодно соберёте портфолио из 7 работ.
→ Вы найдёте работу или деньги за курс вернут. И это не обещание на словах — всё прописано в договоре.
Влюбитесь в профессию с бесплатных блоков. На них вы погрузитесь в основы создания и управления продуктами, поймете, чем занимается Python-разработчик и как устроена работа в IT. А потом уже выберите — проходить программу до конца или нет.
Переходите по ссылке, оставляйте заявку и вводите промокод ПИТОН — с ним вы получите скидку 65% и личную консультацию в подарок.
Реклама. ООО "Эдюсон", ИНН 7729779476, erid: LjN8Kad6b
Управление Docker контейнерами с помощью docker-py
В данном примере мы создаем клиента
Управление образами с помощью docker-py:
Для дальнейшего изучения и ознакомления с более продвинутыми возможностями рекомендуется обратиться к официальной документации.
#python #docker #dockerpy
docker-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
, выво
дим логи работы контейнера и в конце останавливаем и удаляем контейнер.Управление образами с помощью docker-py:
# Получение списка всех образов
images = client.images.list()
# Вывод информации о каждом образе
for image in images:
print(f'ID: {image.id}, Теги: {image.tags}')
Для дальнейшего изучения и ознакомления с более продвинутыми возможностями рекомендуется обратиться к официальной документации.
#python #docker #dockerpy
Backend-разработчики, расчищайте график на 13, 14 апреля. Авито проводит Weekend Offer! Нанимаем без привязки к языку программирования.
Мы предлагаем:
✔️прокачку навыков Go - и PHP-разработки;
✔️платформенные и продуктовые команды;
✔️комьюнити из 1000+ инженеров для обмена опытом;
✔️работу с микросервисной архитектурой, автоматизацией поддержки и другими ведущими проектами компании;
Подавайте заявку до 11 апреля и приходите на интервью.
Мы предлагаем:
✔️прокачку навыков Go - и PHP-разработки;
✔️платформенные и продуктовые команды;
✔️комьюнити из 1000+ инженеров для обмена опытом;
✔️работу с микросервисной архитектурой, автоматизацией поддержки и другими ведущими проектами компании;
Подавайте заявку до 11 апреля и приходите на интервью.
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
#ipaddress
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
ipaddress
.Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
ipaddress
есть и много других интересных возможностей, прочитать о которых можно здесь.#ipaddress
Работаем с USB
Основные методы для работы с
Пакет
Функция
Также есть реализация внешнего и внутреннего интерфейса, для изоляции
#python #PyUSB
PyUSB
— это библиотека, которая обеспечивает легкий доступ к USB
. Имеет поддержку изохронной передачи, если её поддерживает бэкенд.Основные методы для работы с
USB
, такие как find()
, show_devices()
и т. д, хранятся в usb.core
.Пакет
usb.util
содержит вспомогательные функции.Функция
find()
используется для поиска устройств, подключенных к системе.Также есть реализация внешнего и внутреннего интерфейса, для изоляции
API
от деталей реализации системы. Связующим звеном между двумя слоями является интерфейс IBackend
. PyUSB
поставляется со встроенными бэкэндами для libusb 1.0,
libusb 0.1
и OpenUSB
.#python #PyUSB
Возвращаем значение по указанному ключу с помощью метода setdefault()
Метод
Метод
— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Метод
setdefault()
в Python возвращает значение по указанному ключу из словаря. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.Метод
setdefault()
имеет два параметра:— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.