Инкапсуляция
Инкапсуляция - это один из ключевых принципов объектно-ориентированного программирования (ООП). Она позволяет скрыть детали реализации класса и предоставить доступ только к необходимой функциональности через публичные методы и свойства.
Важно понимать, что инкапсуляция способствует безопасности кода, так как она ограничивает прямой доступ к данным класса извне. Это позволяет избегать случайных изменений данных и обеспечивает более надежную архитектуру программы.
Определение интерфейса класса через публичные методы и скрытие внутренних деталей - вот основные задачи инкапсуляции.
#классы #ооп #инкапсуляция
Подробнее
Курс для опытных разработчиков уровня Middle и Senior, которые хотят научиться создавать с нуля архитектуру сервисов и приложений. Вас ждёт много практических заданий, прокачка насмотренности в области архитектуры ПО и экспертиза от техлидов Яндекса и других компаний.
Чему вы научитесь
- Определять, какую архитектуру приложения применять — монолитную или микросервисную,
- Выбирать тип хранения данных, формат и протокол обмена данными в зависимости от типа вашего приложения,
- Разбираться в вертикальном и горизонтальном масштабировании, балансировке нагрузки и стратегиях кеширования.
Главное про курс
• Возможность повысить свой грейд, а соответственно и ценность на рынке.
• +5 новых архитектур в портфолио.
• Программа длительностью 6 месяцев: учёбе нужно уделять от 15 часов в неделю.
Ближайший поток стартует 16 октября. Посмотреть подробную программу курса и записаться можно по ссылке
Подробнее
discord.py: Создание ботов Discord на Python
discord.py - библиотека для создания ботов на платформе Discord. Она предоставляет удобный и абстрактный способ взаимодействия с Discord API, что делает ее отличным выбором для разработчиков, желающих создать собственных ботов и расширить функциональность своих discord серверов.
С discord.py вы можете легко управлять событиями, сообщениями и голосовыми каналами на серверах Discord. Библиотека обеспечивает полную поддержку Discord API, включая возможность создания текстовых и голосовых каналов, отправки сообщений, управления ролями и многие другие функции.
Для начала работы с discord.py, вам потребуется установить библиотеку с помощью pip. Затем вы сможете создавать ботов, настраивать их поведение и взаимодействовать с серверами Discord, используя простой и интуитивно понятный интерфейс.
Подробнее
Привет! Мы в МТС активно поддерживаем ИТ-сообщество в России и запускаем всероссийскую олимпиаду по программированию с главным призом в 3 млн рублей.
Для кого? Для школьников, студентов и действующих ИТ-специалистов.
Что будет? Блок онлайн-заданий, митапы и мастер-классы, общение в закрытом Telegram-канале и финальный очный тур с программированием на скорость. Когда олимпиада завершится, мы создадим True Tech Community, где будем делиться полезными и эксклюзивными материалами для разработчиков.
А что еще? Финалистов ждет afterparty, фестиваль технологий, интерактив, квесты, карьерные стенды, где лучшие специалисты смогут получить оффер от МТС.
Регистрация уже открыта! Подробности по ссылке. Ждем тебя!
Реклама. ПАО "МТС". ИНН 7740000076. erid: LjN8KP98u
Подробнее
Playwright: Автоматизации браузерных тестов и взаимодействия с веб-приложениями
Playwright - библиотека, разработанная для автоматизации браузерных тестов и взаимодействия с веб-приложениями с использованием Python. Она предоставляет удобные и абстрактные средства для взаимодействия с различными браузерами, такими как Chrome, Firefox и т.д., позволяя вам создавать автоматизированные сценарии и тесты.
Одним из ключевых преимуществ Playwright является его кроссплатформенность. Вы можете использовать эту библиотеку на разных операционных системах, что делает ее универсальным инструментом для тестирования и автоматизации веб-приложений.
Для начала работы с Playwright, вам нужно установить библиотеку командами pip install pytest-playwright и python -m playwright install, чтобы библиотека скачала и установила нужные для работы инструменты. Затем вы можете создавать скрипты для автоматизации действий в браузере, такие как открытие страниц, заполнение форм, клики на элементы и многое другое. Playwright обеспечивает поддержку асинхронных операций, что позволяет создавать эффективные и быстрые автоматизированные сценарии.
С помощью Playwright, вы можете значительно упростить процесс тестирования и автоматизации веб-приложений, повысив качество вашего программного обеспечения и ускорив разработку.
Исходный код можно скопировать тут
Подробнее
Участвуйте в Hiring Days в команду VK Cloud 30 сентября и 1 октября и не упустите возможность получить офер всего за одни выходные.
VK ищет специалистов, которые будут поддерживать IaaS — операционную систему для дата-центров, которая управляет динамическим выделением ресурсов, масштабированием, отказоустойчивостью и является фундаментом облачной платформы VK Cloud. Разработчики требуются на три основных направления: Network + Services, Storage и Compute.
Отправляйте отклик до 28 сентября.
Подробнее
SQLAlchemy: Работа с базами данных в Python
SQLAlchemy - библиотека для работы с базами данных в Python. Она предоставляет абстрактный и удобный способ взаимодействия с различными системами управления базами данных, такими как PostgreSQL, MySQL, SQLite и другими.
SQLAlchemy поддерживает как синхронные, так и асинхронные операции с базой данных, что делает ее незаменимым инструментом для создания высокопроизводительных приложений, работающих с данными.
Для начала работы с SQLAlchemy, вам нужно установить библиотеку с помощью pip. Затем вы можете создать модели данных и определить структуру таблиц в вашей базе данных с использованием Python-классов. SQLAlchemy предоставляет удобные ORM (Object-Relational Mapping) инструменты, которые позволяют вам работать с данными в объектно-ориентированном стиле, а не в виде SQL-запросов.
Исходный код можно скопировать тут
Подробнее
RabbitMQ: Брокерская система сообщений для асинхронной обработки данных
RabbitMQ - это мощная и надежная брокерская система сообщений, которая предназначена для обеспечения асинхронного обмена данными между различными компонентами вашего приложения. Эта брокерская система стала широко используемой в индустрии благодаря своей производительности, надежности и гибкости.
Для взаимодействия с RabbitMQ на языке программирования Python часто используется библиотека pika. Pika предоставляет удобный интерфейс для работы с RabbitMQ, позволяя отправлять и принимать сообщения в очереди.
Ключевые характеристики RabbitMQ:
1. Асинхронность: RabbitMQ предоставляет механизм асинхронной обработки сообщений. Это позволяет разным частям вашего приложения обмениваться данными, не блокируя друг друга.
2. Маршрутизация: RabbitMQ обеспечивает гибкую маршрутизацию сообщений с использованием обменников (exchanges) и очередей (queues). Это позволяет точно определить, какие сообщения должны быть отправлены в какие очереди.
3. Надежность: RabbitMQ обеспечивает сохранность данных даже в случае сбоев. Он поддерживает различные стратегии обработки ошибок и перенаправления сообщений.
4. Поддержка множества протоколов: RabbitMQ поддерживает несколько протоколов связи, включая AMQP (Advanced Message Queuing Protocol) и MQTT (Message Queuing Telemetry Transport). Это делает его универсальным и пригодным для различных типов приложений.
Подробнее
VK Mini Apps открывает регистрацию на грантовую программу Fresh Code 2023 для разработчиков мини-приложений
VK Mini Apps приглашает независимых разработчиков принять участие в грантовой программе Fresh Code 2023. Программа продлится два месяца, в течение которых участники смогут создать свое собственное мини-приложение или представить уже готовый проект.
Авторы 25 лучших сервисов будут награждены грантами в размере 200к рублей, причем принимать участие можно как в одиночку, так и в команде. Прочитать подробнее и заполнить форму можно тут до 24 ноября, так что сейчас - лучшее время, чтобы начать работу над приложением.
#миниприложения #vk
Подробнее
aiogram: Создание Telegram ботов
Библиотека aiogram предоставляет мощный и удобный способ создания ботов для Telegram на языке Python. Если вы хотите автоматизировать взаимодействие с пользователями или создать бота для своего бизнеса, то aiogram станет вашим надежным инструментом.
Установка aiogram производится через pip. Эта библиотека предоставляет асинхронный интерфейс для работы с Telegram API и позволяет легко создавать и управлять ботами. Вы можете отправлять и получать сообщения, создавать клавиатуры для взаимодействия с пользователями, а также выполнять множество других действий.
В этом примере мы инициализируем бота с помощью aiogram, создаем обработчик для команды /start, и запускаем бота с помощью executor.start_polling. Не забудьте заменить "YOUR_TELEGRAM_BOT_TOKEN" на токен вашего бота.
aiogram делает создание ботов для Telegram простым и эффективным, что делает его отличным выбором для разработчиков, которые хотят взаимодействовать со своей аудиторией.
Подробнее
🎓 Освойте востребованную IT-профессию за счёт государства и начните зарабатывать сразу после обучения!
Открыт набор на бесплатное онлайн-обучение от ТГУ по самым трендовым IT профессиям 2023 года.
*ТГУ входит в 100 сильнейших вузов мира и Топ-5 России.
Узнайте подробнее про IT-программы и подайте заявку:
https://tglink.io/1febaabfc7f0
На выбор есть много разных программ: от 1С-разработчика до оператора беспилотных аппаратов – выбирать только вам.
Обучение с проектом «Содействие занятости» это:
🔸 Полностью бесплатное обучение
🔸 Более 65 000 выпускников, 75% из которых трудоустроены
🔸 Онлайн формат — учитесь из любого места по 2–3 часа в день в удобное для вас время
🔸 Документ об образовании — подтвердит ваши навыки и компетенции
🔸 Помощь с трудоустройством после обучения
Количество мест на бесплатное обучение ограничено, спешите подать заявку.
Реклама. ООО "АДИ ГРУПП". ИНН 7017283529. erid: LjN8KG7Ex
Подробнее
BeautifulSoup 4: Инструмент для разбора HTML
Библиотека BeautifulSoup, часто называемая bs4, - инструмент для разбора и анализа HTML и XML документов в Python. Если вы работаете с веб-страницами и вам нужно извлечь информацию из HTML-кода, bs4 отлично подойдет для этого.
Установка bs4 также проста и выполняется через pip. С bs4 вы можете легко извлекать данные из HTML, навигировать по документу, находить и извлекать теги и их атрибуты. Это делает bs4 идеальным инструментом для веб-скрапинга, анализа веб-страниц, извлечения данных и многих других задач.
Подробнее
Офигенный канал про работу с продуктом, но на примере живого нецифрового бизнеса.
Ребята за 2 года построили с нуля крупнейшую сеть self-service кофеен в России, с 2022 года развивают ту же бизнес-модель в Грузии и Дубае. Основатель и СЕО компании уже 1,5 года каждый день рассказывает обо всех инсайтах и факапах на пути к цели в 50 000 точек по всему миру.
Интересно про грамотную сборку и быстрый тест гипотез, команду, постановку целей и мотивацию, открыто и честно про факапы, ещё интереснее — про то, как при всём этом кайфовать от жизни и просто быть счастливым.
Ребята масштабируются через привлечение инвестиций — предлагают инвестировать в кофейни в Дубае из любой точки мира. Сами всем управляют, инвесторы только получают часть прибыли каждый месяц или квартал в рублях, долларах или крипте. Доходность — 24,9% годовых в долларах, остальные цифры в канале.
Подписывайтесь, если интересно изучить или просто понаблюдать за тем, как ребята из России дизраптят старый добрый рынок кофе с собой)
Подробнее
spotDL: Автоматизация загрузки музыки из Spotify
Библиотека spotDL - это мощный инструмент для автоматизации процесса загрузки музыки из Spotify. Если вы ищете способ легко и быстро получить аудиотреки с этой популярной стриминговой платформы, то spotDL может стать вашим идеальным партнером.
Установка spotDL также проста и выполняется через pip. Эта библиотека предоставляет удобные средства для поиска и загрузки музыки из Spotify. Она работает асинхронно и поддерживает асинхронный синтаксис с помощью async/await, что делает ее отличным инструментом для современных приложений, где требуется автоматизированный доступ к аудиоконтенту.
spotDL позволяет выполнять поиск треков, альбомов или плейлистов по запросам и загружать их на ваше устройство. Он также предоставляет возможность выбора желаемого качества аудио и множество других опций для настройки загрузки.
Библиотека spotDL не только удобна для скачивания музыки для личного пользования, но также может быть использована для создания аудиоархивов, подкастов или даже для автоматизации процесса создания музыкальных бэкапов.
#spotify #spotDL #аудио #автоматизация
Подробнее
GitVerse: новая разработка СберТех для взаимодействия программистов и разработчиков
Дочерняя компания Сбера СберТех разработала GitVerse — Open Source сервис для совместной разработки проектов и хостинга кода. Презентация состоялась в рамках конференции SmartDev 2023.
GitVerse хостится в России для устранения рисков в отказе доступа российским пользователем и создан для упрощения разработки, позволяя выполнять задачи по сборке, тестированию, развертыванию и проверке кода в общей среде. Сервис автоматизирует процессы, упрощает хранение кода и управление репозиторием, а также позволяет назначать задачи и комментировать.
Кроме того, GitVerse интегрируется с GigaCode, AI-помощником, который повышает эффективность кодирования.
«Сегодня весь мировой IT-рынок движется по направлению к Open Source, и важно чтобы российские разработчики имели все необходимые инструменты для созданий передовых технологических решений. Теперь у них появился сервис, с помощью которого они могут создавать программные проекты и быть уверены в сохранности доступа к ним, ведь это полностью отечественное решение, независимое от иностранных вендоров и технологий.» - Андрей Белевцев, старший вице-президент, CTO, руководитель блока «Технологии» Сбербанка.
GitVerse бесплатно предоставит 2 ГБ для использования сервисных ресурсов, плагинов IDE для упрощения разработки и информационный портал с новостями и материалами с открытым исходным кодом.
Доступ к сервису откроется в начале 2024 года, а зарегистрироваться для раннего тестирования можно уже сейчас на странице проекта.
Подробнее
Асинхронные запросы с aiohttp
Модуль aiohttp представляет из себя асинхронный HTTP клиент/сервер для asyncio и Python. Он позволяет выполнять асинхронные HTTP запросы, что делает его идеальным инструментом для современных приложений, где требуется высокая производительность и параллелизм.
Установка aiohttp производится через pip. Чтобы начать делать асинхронные запросы, вам потребуется взаимодействовать с ним с помощью синтаксиса async/await. Запросы, такие как GET, POST, PUT и DELETE, оформляются чисто и ясно. Объекты ответов содержат все необходимые атрибуты для обработки ответов от сервера.
Модуль aiohttp подходит не только для работы с асинхронными веб-сервисами, но и для асинхронного скрапинга веб-страниц.
#модули
Подробнее
Ещё не записали ребёнка на программирование?
Московская школа программистов — не курсы, а школа программирования с фундаментальным подходом к обучению и целым поколением выпускников, которые уже строят успешную карьеру.
🎓 Выпускники школы:
- победители олимпиад: 90+ наград
- чемпионы мира по робототехнике (WRO)
- чемпионы по кибербезопасности: золотая медаль на MOSCOW CTF SCHOOL
- уже работают в Яндекс, Сбер, Kaspersky, VK и других топовых IT-компаниях.
✔️ Для школьников 3-10 классов! Сделайте первый шаг в большое будущее — регистрируйтесь на бесплатный открытый урок.
Реклама. ЧУ ДО "МОСКОВСКАЯ ШКОЛА ПРОГРАММИСТОВ". ИНН 9715290128. erid: LjN8K6kRM
Подробнее
Мощная декларативная библиотека для работы с датой и временем
Большинство разработчиков знают про модуль datetime из стандартной библиотеки - достаточно хороший инструмент для работы с временем. Но не лишним будет узнать про его мощное расширение - dateutil.
dateutil позволяет писать краткий и декларативный код для решения задач по взаимодействию с датой и временем.
На скриншоте показано получение первого дня прошлого месяца с помощью dateutil и без.
Примечательно то, что dateutil позиционируется как расширение для datetime, что значит, что они друг с другом совместимы.
Подробнее
IT-ипотека от 2,5%: все фичи от отделки до мебели
«Самолет» меняет представление о загородной жизни и предлагает проект, где максимально апдейтнули городской уровень комфорта — «Дмитров Дом».
🏘 Здесь классный фронтенд: готовые дома площадью от 61 до 225 м², полноценная экосистема, где все находится в шаговой доступности, а также единое оформление всех пространств. Можно взять MVP с базовой отделкой, а можно добавить в ипотеку полезных фич: кухню, мебель, баню, террасу и беседку.
🌐 Бэкенд тоже не подводит: все коммуникации, в том числе и высокоскоростной интернет, уже проведены — начинать спринты можно сразу после заезда. Работает профессиональная управляющая компания в доступе 24/7 в один клик в приложении — уникальная опция для ИЖС.
Преимущества проекта в его инфраструктуре, которая позволяет жить без забот: интернет даже на улице, коворкинг, поликлиника, школа, детский сад, магазины и кафе, конный клуб, собственный досуговый центр и многое другое — всё в шаговой доступности.
В сентябре загородный дом с участком можно взять в ипотеку со ставкой от 2,5% для IT-специалистов — платеж будет такой же, как за квартиру.
«Дмитров Дом» поможет по-новому взглянуть на загородную жизнь и удаленную работу. Если выбрать дом сейчас, то можно успеть встретить в нем Новый год! Выбрать дом можно по ссылке: https://smlt.ru/12popix
Реклама. ООО «СЗ «Самолет Девелопмент».
Подробнее
Простой, мощный и асинхронный веб-фреймворк
Одним из популярных фреймворков для разработки серверной части на Python является FastAPI. К слову, он уже догоняет Django и Flask по звездам на GitHub.
FastAPI предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. Он является одним из самых быстрых фреймворков на Python.
Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу http://127.0.0.1:8000/ и посмотреть результат.
#модули
Подробнее
Первый или даже нулевой шаг в разработку — это понимание логики и алгоритмов, на которых строится любой язык программирования. Хорошая новость в том, что этот уровень доступен абсолютно всем.
На курсе «Основы программирования» за час вы научитесь читать код и сможете написать свою первую строчку на языке Python. Вас ждут задачи в тренажёре, которые быстро помогут понять — интересно ли вам вообще программировать?
Если да, то разберётесь в основах и сможете сделать следующий шаг к выбору конкретного направления.
Перейти к «Основам программирования»
Подробнее
Перечисления
Python поддерживает простой механизм работы с перечислениями, которые ещё называют enum. Подобные перечисления удобно использовать для хранения списков констант.
Из документации можно узнать о том, что Enum — это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность.
Также можно задать геттер через @property, который используют для получения перечислений в других форматах. В примере реализовано перечисление цветов в RGB, а через геттер их можно получить в формате hex.
#enum
Подробнее
SmartDev 2023 — большая конференция про технологии от Сбера
21 сентября в кинотеатре «Октябрь» пройдет технологическая конференция SmartDev 2023, организованная Сбером. На одной площадке соберутся ведущие инженеры и разработчики из Сбера, VK, Яндекса, Kaspersky и других компаний, чтобы обменяться опытом создания лучших технологических решений в мире.
Основные темы конференции:
– Машинное обучение и искусственный интеллект
– Архитектура программных решений
– DevOps
– Работа с большими данными
– Безопасность приложений
– Инновации и стратегии в разработке ПО
Кроме того, участники конференции смогут задать вопросы создателям нашумевших проектов от Сбера — сервиса GigaChat и нейросети Kandinsky, а также впервые в России услышать выступление генерального директора Gitee, китайского аналога GitHub.
Конференция соберёт 1500 участников в офлайне и несколько тысяч зрителей в онлайне.
Участие бесплатное, подробности и регистрация — на сайте конференции
Подробнее
Пишем асинхронных ботов для ВК
Под постом про проект подписчика, связанный с написанием ВК ботов, в комментариях упомянули про модуль vkbottle, про который сейчас и расскажем.
Библиотека является асинхронной и требует минимум кода со стороны разработчика, что позволяет сконцентрироваться на задаче, не тратя силы и время на само взаимодействие с API.
Код, написанный на vkbottle, чем-то похож на всем знакомый flask. А пример выше реализует бота, который отвечает сообщением "Здравствуй!" на "Привет".
#боты #vk
Подробнее
У Яндекс Практикума есть бесплатный курс по основам Python-разработки. Программу составили опытные разработчики и методисты, чтобы вы сами могли освоить базу Python.
На курсе вы
— узнаете, какие задачи решает бэкенд-разработчик;
— будете писать код на Python — с первого урока;
— создадите программного помощника Анфису;
— узнаете, как устроено полноценное обучение в Практикуме.
После бесплатного курса вы сможете принять спокойное, взвешенное решение.
→ Начните действовать: разберитесь бесплатно, что к чему в Python.
Подробнее
Упрощение создания операторов сравнения
Для создания объектов с поддержкой операторов сравнения в классе обычно требуется реализовать большое количество магических методов, а именно – __lt__, __le__, __eq__, __ne__, __gt__, __ge__.
Про то, что делает каждый из них расскажем отдельным постом, но сейчас покажем, как можно сильно упростить реализацию подобного класса. Для этого можно использовать декоратор total_ordering из пакета functools.
В таком случае достаточно реализовать в классе только __lt__ и __eq__. Эти два метода являются минимумом, который нужен декоратору для конструирования остальных методов.
#классы
Подробнее
💻 БЕСПЛАТНЫЕ КУРСЫ ПРОГРАММИРОВАНИЯ ДЛЯ ШКОЛЬНИКОВ 8-11 КЛАССОВ И КОЛЛЕДЖИСТОВ
ДОСТУПНЫЕ ПРОГРАММЫ ОБУЧЕНИЯ:
⭐ Разработка на Python
⭐ Разработка на C++
⭐ Разработка на JavaScript
⭐ Разработка на Java
⭐ Разработка многостраничного сайта на PHP
⭐ Разработка мобильного приложения на Java
IT-разработка - точно то, что нужно, если:
✔️ Школьник увлекается играми
✔️ Школьнику интересно устройство гаджетов
✔️ Школьнику нравятся всевозможные роботы и конструкторы
Для получения подробной информации переходите по ссылке
Подробнее
Режим разработки
Оказывается, еще в Python 3.7 появилась возможность запускать скрипты со специальным флагом -X для указания различных вариантов реализации.
Например, -X dev запускает скрипт в режиме разработки с функциями отладки и runtime-проверки, которые не используются по умолчанию из-за своей медлительности.
Также этот режим выводит дополнительные предупреждения в следующих случаях:
— Незакрытые файлы;
— Unawaited корутины;
— Неизвестная кодировка для str.encode;
— Проблемы с выделением памяти.
В целом, классная штука и имеет смысл периодически запускать скрипты в таком режиме, чтобы не упустить никакие баги.
#python
Подробнее
Бесплатный курс VK Education: углублённый Python для студентов и недавних выпускников
Завершается набор на бесплатный онлайн-курс «Углублённый Python», обучение стартует уже 12 сентября. Если вы знакомы с базовыми принципами этого языка и стремитесь освоить его глубже, то этот курс создан специально для вас.
Программа включает как онлайн-занятия, так и очные лекции в московском офисе VK.
Вас ждут не только теоретический материал, но и практические мастер-классы, и возможность поучаствовать в хакатоне.
Отличительной особенностью курса является то, что успешные выпускники получат преимущество при трудоустройстве в VK.
Для подачи заявки на курс нужно поспешить — набор продлится до конца сегодняшнего дня! Подробная информация о программе размещена на странице курса и в статье на Хабре.
Подробнее
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
#itertools
Подробнее
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.
Метод Counter.most_common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
#collections #counter
Подробнее
🚀 В Телеграм появился новый канал, на котором бесплатно учат кибербезу
CyberSec News — тут рассказывают, как защититься от хакеров, находить уязвимости в программах и сайтах и стать белым хакером.
Его ведет гик-специалист по безопасности, который фанатеет от киберпанка и самураев. Поэтому во все посты он вписывает прикольные японские фразочки.
А еще он понятно пишет и разъясняет работу каждой уязвимости на пальцах. Поэтому будет полезно почитать специалистам любого уровня.
Да и тем, кому просто нравится кибербез и самураи — тоже зайдет ;)
Заглядывайте, если хотите стать этичным хакером → @CyberNewsSe
Подробнее
Именованные кортежи
Кортежи tuple, по своей сути, являются неизменяемыми списками. Структура данных удобная, но мы можем получать данные, используя только числовые индексы.
Нет возможности дать имена отдельным элементам, сохранённым в кортеже. Это может повлиять на читаемость кода. И в таком случае используют именованные кортежи namedtuple из collections.
Каждый объект в именованном кортеже может быть доступен через уникальный, удобный для чтения человеком, идентификатор. При этом вся функциональность от обычных кортежей сохраняется.
#namedtuple
Подробнее
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
#itertools
Подробнее
Сортировка пузырьком
Для сортировки списков в Python уже есть встроенные функция sorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.
Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
#списки #сортировка
Подробнее
Проверяем скорость интернета
Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела.
У объекта класса Speedtest методы download() и upload() выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
#speedtest
Подробнее
Дробные числа
По умолчанию числа с плавающей точкой используют память привычным образом, то есть они хранятся в двоичном виде. Это означает, что вы обычно работаете с приблизительными значениями, а не точными.
Можно использовать тип данных Decimal, который предоставит намного большую точность, но и его может не хватить в некоторых случаях.
Поэтому для идеальных вычислений лучше использовать Fraction, который представляет и хранит число в виде рациональной дроби.
#числа #fraction
Подробнее
💪 О преимуществах Python сейчас не говорит только ленивый. И не просто так — этот востребованный язык программирования подходит для многих направлений: от бэкенд-разработки до Data Science. А его простой и понятный синтаксис, гибкость, множество фреймворков и активное комьюнити делает его удобным в работе.
Освоить Python-навыки под силу каждому на онлайн-курсе «Python Developer» от OTUS. У вас есть возможность бесплатно протестировать этот онлайн-курс!
👉 Подключайтесь 24 августа в 20:00 на бесплатный урок «Работа с пакетами в Python с помощью pip и poetry».
На занятии разберем оба пакетных менеджера, поговорим про основные сценарии использования, обсудим различия, узнаем, в каких случаях можно обойтись решением попроще, а в каких случаях требуется более продвинутый подход.
👉 Для участия и получения записи зарегистрируйтесь https://otus.pw/1cxO/
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8Jucdq
Подробнее
Официальное упорядочивание словарей
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
#словари
Подробнее
Хотите стать разработчиком, но не знаете, какой язык программирования выбрать? Вот несколько причин присмотреться к Python 👇🏻
✔️ Простой. Элементарный синтаксис легко понять и изучить
✔️ Запускается на разных платформах: MacOS, Linux, Windows, Android, iOS и других. Это удобно.
✔️ Имеет ускоренный цикл разработки. Ему не нужно время на сборку и компиляцию. Пишете строку кода — и видите результат.
✔️ Даёт гигантскую библиотеку готовых решений — от веб-разработки до искусственного интеллекта.
По данным hh.ru, зарплата новичка — 100 000 рублей, а на июль 2023 открыто 5 365 вакансий.
Освоить язык проще всего на онлайн-курсе Skillbox «Профессия Python-разработчик»: тут вам и удобный график, и личный куратор, и даже гарантия трудоустройства (подробные условия — на сайте)!
Переходите по ссылке, чтобы узнать подробности и забронировать местечко: https://goo.su/WSMmSa
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Подробнее
Режим разработки
Оказывается, еще в Python 3.7 появилась возможность запускать скрипты со специальным флагом -X для указания различных вариантов реализации.
Например, -X dev запускает скрипт в режиме разработки с функциями отладки и runtime-проверки, которые не используются по умолчанию из-за своей медлительности.
Также этот режим выводит дополнительные предупреждения в следующих случаях:
— Незакрытые файлы;
— Unawaited корутины;
— Неизвестная кодировка для str.encode;
— Проблемы с выделением памяти.
В целом, классная штука и имеет смысл периодически запускать скрипты в таком режиме, чтобы не упустить никакие баги.
#python
Подробнее
Делегирующие генераторы
Давайте создадим простенькую генераторную функцию subgen, которая будет возвращать числа от 0 до переданного аргумента.
А также ещё одну генераторную функцию delegator, которая будет возвращать числа из итерируемого объекта source, который передадим в качестве аргумента.
Цикл, который можно написать в delegator, можно заменить всего лишь одной строчкой. То есть yield from заменяет цикл for, в котором только возвращаются значения через yield.
Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации delegator можно назвать делигирующим генератором, а subgen подгенератором.
#генераторы
Подробнее
Разница между == и is
Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования == и is в приложениях могут возникнуть странные ошибки.
Оператор == проверяет равенство значений двух объектов. А оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.
Но Python в целях производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
#тонкости
Подробнее
Собрать свой ИИ теперь можно с нуля. Без всякого опыта в программировании! Вас научит основатель Университета Искусственного Интеллекта Дмитрий Романов. За 2 дня под его руководством вы создадите сразу 12 нейросетей.
Если вы хотите поближе познакомиться с тем, как работают технологии вроде ChatGPT, Stable Diffusion, а также разобраться в генерации и распознавании речи — этот интенсив для вас.
Зарегистрироваться на легендарный интенсив можно по ссылке.
Подробнее
Вычисление выражений Python
Вы наверняка знакомы с eval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так, как показано на картинке выше.
Между прочим, данная фича находится в языке уже очень давно.
#tips #eval
Подробнее
Курс и конвертер валют в Python
Для работы с разными валютами и их курсами существует библиотека forex-python.
С её помощью можно как узнать курс любой валюты, так и сконвертировать одну валюту в другую.
Ознакомиться с интерактивным примером кода можно тут.
#currency #forex_python
Подробнее
Порядок разрешения методов
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object.
Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
#классы
Подробнее
Метод join у строк
У строк есть полезный метод str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки.
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
Подробнее