Используйте dict.get() вместо dict[]
Есть несколько способов получения значений из словарей.
Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение.
Поэтому мы считаем, что лучше использовать метод get
у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию.
Таким образом, если значение по ключу не найдено, то вернется дефолтное значение.
В итоге мы убираем возможные ошибки в случае, если нужных ключей в словаре нет.
Сортировка списков
В Python есть два встроенных варианта для сортировки списков — функция sorted()
и метод list.sort()
. Результат в обоих случаях одинаков, но всё же есть нюансы.
Функция sorted()
принимает на вход аргумент в виде списка, а возвращает уже новый отсортированный список. При этом исходный список не изменяется.
Метод sort()
в свою очередь применяется к списку, изменяет его непосредственно и ничего не возвращает.
Разница между == и is
Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования ==
и is
в приложениях могут возникнуть странные ошибки.
Оператор ==
проверяет равенство значений двух объектов, а оператор is
проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.
Но Python для большей производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
Выиграй 4 000 000 ₽ на True Tech Champ
МТС приглашает опытных и начинающих разработчиков поучаствовать в чемпионате. В треке «Программирование роботов» нужно будет создать алгоритм для прохождения лабиринта. Победит тот, чей робот окажется самым быстрым. При этом не обязательно разбираться в устройстве роботов: эксперты трека уже сконструировали их и создали прошивку. Для участия достаточно уметь программировать на одном из языков: С++, C#, Go, Python, JS, Java.
Регистрация открыта до 12 октября, отборочные онлайн-этапы уже стартовали!
До финала смогут дойти на равных разработчики вне зависимости от стека или уровня: питонисты или джависты, джуны или сеньоры. А с полуфиналов начнётся командный этап — можно собрать свою дримтим.
Участникам дадут доступ к API и подробные инструкции. Эксперты трека будут помогать, направлять и отвечать на вопросы на вебинарах.
Зарегистрироваться можно по ссылке.
Иногда хочется простого человеческого… спокойствия и тишины! После всех дейликов, разобранных бэклогов голова уже сама как бсод. Понимаем и не осуждаем.
Отключаться и наслаждаться спокойствием природы без потери всех дарований цивилизации можно хоть каждый день, если живешь в Доброграде.
Доброград – это новый город в 2,5 часах от Москвы, где соединились современные технологии, живописная природа и мультифункциональная среда, способная адаптироваться под потребности человека. Документацию дадим сразу по ссылке
Тыквенный латте тоже в наличии!
Реклама. ООО "СЗ "Доброград". ИНН 3317027134
Перечисления
Python поддерживает простой механизм работы с перечислениями, которые ещё называют enum
. Подобные перечисления удобно использовать для хранения списков констант.
Из документации можно узнать о том, что Enum
— это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность.
Также можно задать геттер через @property
, который используют для получения перечислений в других форматах. В примере реализовано перечисление цветов в RGB, а через геттер их можно получить в формате hex
.
Делаем скриншоты
Кросс-платформенный модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Для его работы должна быть корректно установлена библиотека pillow.
Для создания скриншота используется метод grab, для его открытия – show, для сохранения – save. Также в grab можно передать аргумент bbox для захвата только определённой части экрана.
Подобный модуль может быть полезен, например, для логирования скриптов, использующих Selenium, который может открывать браузер и производить какие-либо операции в нём.
Красивые таблицы в терминале
PrettyTable – это библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить обычным способом через pip
.
Для создания таблиц и работы с ними используется класс PrettyTable
из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name
. Строки в таблицу добавляются путем вызова метода add_row
.
Более того, модуль prettytable
позволяет регулировать различные параметры, сортировать данные, работать с html
, а также взаимодействовать с csv
и sql
таблицами, так что возможностей у этого модуля предостаточно.
Python-разработчики, для вас кое-что есть
Попробуйте силы на Weekend Offer в Т-Банке.
Можете работать с современным стеком технологий и экспериментировать. Здесь хороший читаемый код, отлаженные процессы и приятная атмосфера, так что будет время на работу и обсуждение новых идей.
Если вы специалист уровня middle или senior, подайте заявку на Weekend Offer до 16 октября и пройдите все секции за выходные. Справитесь — пришлем оффер на неделе. Зарегистрироваться тут
🖥 Легкий способ получать свежие обновления и следить за трендами в Python. Находите свой стек и подписывайтесь:
Выкладываем 3834 ГБ платных курсов, книг и лекций, и готовых скриптов для программистов в Telegram
Собеседования Python: t.me/pythoninterview
Машинное обучение: t.me/aiml
Python проекты с кодом: t.me/pythonl
Python Книги: t.me/pythonlbooks
Вакансии Python: t.me/python_djangojobs
Data Science: t.me/data_analysis_ml
Курсы Python: t.me/pytcourse
Хакинг: t.me/linuxkalii
Целая папка Питониста: /channel/addlist/8vDUwYRGujRmZjFi
Защищаем исходный код обфускацией
Обфускация кода — это превращение исходного кода в нечитаемый для человека вид с сохранением всей функциональности программы.
Цель заключается в защите скриптов. Обфускация делает анализ кода крайне сложным, а иногда и невозможным.
Другим разработчикам становится проблематично получить и понять ваш исходный код для того, чтобы, например, взломать программу.
В Python есть отличная библиотека pyarmor, предназначенная именно для этого. Пример использования этого пакета в терминале представлен на картинке.
➡️ Pony ORM — продвинутая ORM с поддержкой генерации SQL-запросов
Pony ORM — это удобная и мощная ORM, которая позволяет писать запросы на SQL, используя синтаксис Python. Она автоматически генерирует SQL-запросы на основе Python-кода, что делает работу с базами данных простой и интуитивной.•
Pony ORM — отличный выбор для разработчиков, которым важно писать лаконичный код при работе с базами данных, без явного написания SQL-запросов.
🔗 Ссылочка на доку
💸 Вакансии для IT'шников
Выбери своё направление ⤵
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. C/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
#вопросы_с_собеседований
Когда выполняется except, в блоке try-except?
Блок try-except обычно используется, когда мы хотим что-то выполнить, если возникли ошибки. except выполняется, когда код в блоке try вызвал ошибки.
6 Python декораторов, которые значительно упростят ваш код
Декораторы могут помочь вам писать меньше кода для реализации сложной логики и повторно использовать его повсюду.
Смотреть статью
Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥
Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.
Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!
Форматирование строк для URL-адресов
Стоит вспомнить, что slug — это уникальная строка-идентификатор, понятная человеку и содержащая только безопасные символы: латинские символы в нижнем регистре, цифры и дефис.
Чаще всего такое понятие встречается в контексте URL-адресов. Например, можно формировать slug из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят.
Выше в коде мы написали простую функцию, где использовали методы lower()
для приведения в нижний регистр и strip()
для удаления пробелов слева и справа.
Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет re
для работы с ними.
Константы пакета string
Встроенный модуль string
предоставляет расширенный функционал для работы со строками.
Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters
, punctuation
, digits
и whitespace
— символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string
.
Удаление префиксов и суффиксов
По какой-то причине многие разработчики посчитали эту фичу в обновлении 3.9 не очень интересной и попросту забыли. И зря.
Некоторые на полном серьезе для таких целей до сих пор пытаются использовать забагованные .strip и .lsrtip. Большинство просто не до конца понимают, как работают эти два метода.
В Python 3.9 были добавлены методы для строк .removeprefix и .removesuffix, предназначенные специально для удаления префиксов и суффиксов в строках.
Операции с zip архивами
Для манипуляций с zip
файлами используется встроенный модуль zipfile
(установка не требуется). Напомним, что zip используется для сжатия файлов без потерь.
Посмотреть файлы архива можно с printdir
, извлечь все файлы — с extractfile
. У модуля есть еще несколько полезных функций, включая создание собственных архивов. Документация: https://docs.python.org/3/library/zipfile.html
👩💻 Программирование теперь в Telegram!
Вот 10 обучающих каналов по самым востребованным направлениям в IT.
Выбирай своё направление:
👩💻 Python: @python_ready
👩💻 Java: @java_ready
👩💻 C/C++: @cpp_ready
👩💻 Backend: @backend_ready
👩💻 Frontend: @code_ready
🖥 Базы Данных & SQL: @sql_ready
👩💻 Весь IT: @roadmap_ready
👩💻 C#: @csharp_ready
📖 IT Архив: @archive_ready
🖥 Design: @time_design
📌 Ресурсы, гайды, шпаргалки, книги и задачи для каждого языка программирования.
Яндекс Foodtech Tour едет в Санкт-Петербург!
Митапы для бэкенд-разработчиков о технологиях Еком-сервисов Яндекса теперь в северной столице. 17 октября организаторы расскажут о новых сценариях и стартапах в компании. В программе три доклада:
👉 Никита Пятаков, старший разработчик в Яндекс Лавке, расскажет о запуске аптек внутри сервиса
👉 Леша Тришин, руководитель группы специального подключения в Яндекс Маркете, поделится опытом интеграции сервиса с китайскими маркетплейсами
👉 Олег Гладышев, старший разработчик в Яндекс Еде, объяснит, зачем Яндексу свои умные велосипеды, и покажет, как они создаются
После докладов гостей ждет открытый микрофон со спикерами и афтепати. Зовите друзей и регистрируйтесь!
Обратите внимание, количество мест ограничено. После регистрации обязательно дождитесь подтверждения заявки.
Ограничение использования памяти и процессора
Если вместо оптимизации программы вы хотите ограничить используемые ею ресурсы компьютера, можно использовать полезные библиотеки. На картинке показано, как реализовать ограничения процессорного времени и объема используемой памяти.
Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
Фреймворк Flask
Один из самых популярных фреймворков для разработки бэкенда. Предназначен для быстрого лёгкого старта работы в создании как простых, так и сложных приложений.
Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи pip
, затем создаём объект-приложение, далее с помощью декоратора указываем путь в адресной строке и определяем функцию, которая возвращает отображаемый текст. После запуска приложения результат можно увидеть в браузере по адресу http://localhost:5000/
.
from future import
Одним из последствий популярности Python является постоянная разработка и выход новых версий. Новые версии — новые возможности, но только не для вас, если вы пользуетесь устаревшей.
Впрочем, не всё так плохо. Модуль future даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия.
➡️ Использование types.MappingProxyType
для создания неизменяемых отображенийtypes.MappingProxyType
— это объект-обёртка, который позволяет создать неизменяемое отображение на основе существующего словаря. Он предоставляет доступ для чтения к данным словаря, но блокирует возможность их изменения, что полезно для защиты данных от случайных изменений.
🗣 В этом примере MappingProxyType используется для создания защищённого отображения.
MappingProxyType
помогает обезопасить данные, которые не должны изменяться в процессе работы программы.
Читать полностью…
➡️ Polars — библиотека для обработки данных, оптимизированная для больших наборов
Polars — это высокопроизводительная библиотека для обработки и анализа данных, которая фокусируется на скорости и эффективной работе с большими наборами данных. Она предоставляет интуитивный интерфейс для работы с табличными данными и поддерживает многопоточность для максимальной производительности.•
Polars — отличный выбор для проектов, которым требуется быстрая обработка больших объёмов данных, с минимальными затратами на память.
🔗 Ссылочка на доку
Вычисление размера объектов
Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof()
.
Функция getsizeof
вызывает метод __sizeof__
объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. C/C++
7. PHP
8. Kotlin
9. Swift
Метод Counter.most_common()
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.