Посты с тэгом программирование


[Перевод] Три редко используемых возможности Python 3, о которых каждый должен знать



Python 3 существует уже какое-то время и довольно много разработчиков, особенно те, кто только начинает свой путь в Python, уже используют эту версию языка. Несмотря на то, что множество новых возможностей широко используются, похоже, что некоторые остались за кадром. В этой статье я расскажу о трех наименее известных, но полезных, возможностях. Я знаю о них из других языков и они делают Python 3 классным.
Читать дальше →


Как работают профайлеры в Ruby и Python?

Перевод статьи подготовлен в преддверии старта продвинутого курса «Разработчик Python».





Всем привет! В качестве аперитива к профайлеру на Ruby я хотела рассказать о том, как работают уже существующие профайлеры на Ruby и Python. Также это поможет дать ответ на вопрос, который мне задает множество людей: «Как написать профайлер?»

В этой статье мы сфокусируемся на профайлерах процессора (а не, допустим, профайлерах памяти/кучи). Я расскажу о некоторых базовых подходах к написанию профайлера, приведу примеры кода и покажу много примеров популярных профайлеров на Ruby и Python, а также расскажу, как они работают под капотом. Читать дальше →


Вы просто не знаете зачем нужны языки с динамической типизацией

Вы просто не знаете зачем нужны языки с динамической типизацией



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


Я, конечно же, я верю в статическую типизацию. Я убежден что она захватит (и уже захватывает) мир. Люди, бросавшие мне в лицо: "нам не нужны все эти ваши типы" с таким же фанатизмом рукоплескали добавлению различных типов в их любимые языки с динамической типизацией (классы в JavaScript, аннотации типов вместе с mypy в python). Мне не нужны извинения за их недальновидность и невежество. Они вели себя радикально лет 10-15 назад и проиграли. То, во что превратилась экосистема их любимых языков — это лучшее наказание, а их поведение обязательно должно быть наказано. Пока



[Перевод] 8 продвинутых возможностей модуля logging в Python, которые вы не должны пропустить

Понимайте свою программу без ущерба для производительности



Журналирование — это очень важная часть разработки ПО. Оно помогает разработчикам лучше понимать выполнение программы и судить о дефектах и непредвиденных сбоях. Журнальное сообщение может хранить информацию наподобие текущего статуса программы или того, в каком месте она выполняется. Если происходит ошибка, то разработчики могут быстро найти строку кода, которая вызвала проблему, и действовать с учетом этого.


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

Читать дальше →


Пишем веб сервис на Python с помощью FastAPI


Знаю, знаю, наверное вы сейчас думаете «что опять?!».
Да, на хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД. Читать дальше →


Какая асинхронность должна была бы быть в Python

В последние несколько лет ключевое слово async и семантика асинхронного программирования проникла во многие популярные языки программирования: JavaScript, Rust, C#, и многие другие. Конечно, в Python тоже есть async/await, они появились в Python 3.5.

В этой статье хочу обсудить проблемы асинхронного кода, порассуждать об альтернативах и предложить новый подход поддерживать и синхронные, и асинхронные приложения одновременно.
Читать дальше →



[Перевод] Изучаем mutmut — инструмент для мутационного тестирования на Python

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

У вас есть тесты на все случаи жизни? Или может быть, в репозитории вашего проекта даже лежит справка «О 100-процентном тестовом покрытии»? Но разве в реальной жизни всё так просто и достижимо?


Читать дальше →



[Перевод] 10 вещей, которые вы могли не знать о scikit-learn

В этой переведенной статье ее автор, Rebecca Vickery, делится интересными функциями scikit-learn. Оригинал опубликован в блоге towardsdatascience.com.


Фото с сайта Unsplash. Автор: Sasha • Stories

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

Этот проект, разработанный Дэвидом Курнапо (David Cournapeau), появился на свет в рамках программы Google Summer of Code и



Python в Visual Studio Code — июльский релиз

Мы рады сообщить, что июльский выпуск расширения Python уже доступен для Visual Studio Code. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Если у вас уже установлено расширение Python, вы также можете получить последнее обновление, перезапустив Visual Studio Code. Вы можете узнать больше о поддержке Python в Visual Studio Code в документации.

В этом выпуске мы сделали 51 улучшение, в том числе:

  • Добавлена поддержка нового языкового сервера: Pylance
  • Gather Extension
  • Экспорт записных книжек (notebooks) в HTML и PDF
  • Обратное соединение для отладчика

Если вы заинтересованы, вы можете изучить полный список улучшений в нашем


[Перевод] Стоит ли переходить с Python на Nim ради производительности?

Nim — это сочетание синтаксиса Python и производительности C



Несколько недель назад я бродил по GitHub и наткнулся на любопытный репозиторий: проект был полностью написан на языке Nim. До этого я с ним не сталкивался, и в этот раз решил разобраться, что это за зверь.

Сначала я подумал, что отстал от жизни, что это один из распространённых языков программирования, который многие, в отличие от меня, активно используют. И тогда я решил изучить его.
Читать дальше →