Обновить
545

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Задача «Индекс Линкольна»

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.9K

Предположим ваш тестер нашел в программе 20 ошибок. И теперь вы хотите прикинуть сколько в программе всего ошибок на самом деле. Вы точно знаете что в программе как минимум 20 ошибок, и если вы абсолютно уверены в высокой квалификации вашего тестера вы можете предположить что в программе на самом деле где-то около 20 ошибок. Но что если квалификация вашего тестера вызывает сомнения? Возможно в программе сотни ошибок. Как в этом случае вы можете оценить количество ошибок? Увы имея в своем распоряжении только одного тестера ничего больше сделать нельзя. Но если у вас два тестера то у вас есть отличный способ оценить общее количество ошибок даже если квалификация тестеров вызывает сомнения.

Читать далее

Как я написал Telegram-бота для учёта подписок

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.3K

Как я написал Telegram-Бот для учёта подписок

Написал Telegram-Бот для учёта подписок и регулярных расходов на Python и Yandex. Cloud

Он умеет предупреждать по 3 основным сценариям:

1. Окончание пробного периода.

2. Ежемесячная подписка.

3. Ежегодная подписка.

В статье расскажу про особенности технологического стэка и дополнительные возможности бота.

Читать далее

Просим бота написать бота

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели24K

В этой статье, хочу поделиться интересным опытом работы с ChatGPT, в рамках которого был написан телеграм-бот на языке Python, использующий API OpenAI для получения ответов на запросы.

Началось все с того, что я захотел зарегистрировать себе аккаунт на OpenAI и понять, кто такой этот ваш ChatGPT. Немного танцев с бубном, и желаемая цель была достигнута. Бот понравился, но возникали некоторые неудобства из-за доступа по VPN. Тогда у меня появилась идея создать телеграм-бота, который будет отправлять запросы в API OpenAI и возвращать ответы.

Я потратил следующий час на чтение документации по API OpenAI, но моя лень оказалась более находчивой, и я решил дать ChatGPT задание написать бота самостоятельно.

Что из этого вышло?

Читать далее

Как мне удалось найти работу через восемь месяцев после первого Hello, world

Время на прочтение7 мин
Охват и читатели10K

Привет! Меня зовут Арсен Григорян, я студент курса «Python-разработчик» в Яндекс Практикуме. В апреле 2022 года я решил заняться программированием — прямо как хотел в юности, а в декабре получил своё первое предложение о работе. Звучит как лёгкая история успеха, но на деле этому предшествовали сотни откликов в пустоту и больше тысячи часов учёбы.

В этой истории я расскажу, как стал разработчиком после 14 лет в сфере продаж и насколько важны две вещи: удача и трудолюбие.

Читать далее

Книга «40 алгоритмов, которые должен знать каждый программист на Python»

Время на прочтение6 мин
Охват и читатели60K
image Привет, Хаброжители!

Понимание работы алгоритмов и умение применять их для решения прикладных задач – must-have для любого программиста или разработчика. Эта книга поможет вам не только развить навыки использования алгоритмов, но и разобраться в принципах их функционирования, в их логике и математике.

Вы начнете с введения в алгоритмы, от поиска и сортировки перейдете к линейному программированию, ранжированию страниц и графам и даже поработаете с алгоритмами машинного обучения. Теории не бывает без практики, поэтому вы займетесь прогнозами погоды, кластеризацией твитов, механизмами рекомендаций фильмов. И, наконец, освоите параллельную обработку, что даст вам возможность решать задачи, требующие большого объема вычислений.

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

У меня возникают сложности с продуктивной работой на Python

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K
Примечание: всё, что говорится в этой статье, можно отнести и к любому другому языку с динамической типизацией (скажем, Ruby). Я делюсь своим опытом и мытарствами конкретно по Python только потому, что сам пользуюсь этим языком.

Изначально я осваивал программирование на Python, и этот язык до сих пор занимает особое место в моем сердце. Именно он научил меня, как нужно подходить к программированию, как моделировать проблему, которую должен решить код, и общаться с компьютером. Свою текущую работу (как и предшествующую) я получил благодаря знанию Python. Я был его фанатом и евангелистом, проводил много времени в сообществах по Python – помогал другим и учился сам. Когда я стал выступать в роли наставника для новичков, то из языков выбрал для себя Python.
Хорошо помню, как у нас с другом состоялся такой разговор.

Друг: C# сильно упрощает жизнь за счет типов.
Я: Как-то не ощущал потребности. А какая от них польза?
Друг: А как ты управляешься с функциями, которые могут принимать любой тип аргумента?
Я: На то у меня юнит-тесты плюс высокая степень покрытия кода. Достаточно небольшого изменения, чтобы охватить остальные. К тому же к функциям прилагается документация, там сказано, для чего они нужны и какие аргументы принимают. Плёвое дело.

Как же я ошибался. На тот момент я доводил код до продакшна на Python, но пользователей у нас было немного. Опыта работы с другими языками у меня не имелось вообще.
Читать дальше →

Python: класс Factory, возвращающий собственных наследников

Время на прочтение4 мин
Охват и читатели4.7K

Добрый день!

Язык Python для меня не является языком программирования, который я использую в повседневной работе. Для меня более близки ООП языки программирования Java, Object Pascal. Поэтому, не холивара ради, я хочу спросить у сообщества на сколько правильно решение, которое я опишу в данной статье?

Мы все учились понемногу, чему-нибудь...

Об эффекте занижения коэффициента линейной регрессии «шумами» данных, или почему все-таки «регрессия»

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели3.5K

По-видимому, именно данный эффект исторически и привел к использованию термина "регрессия".

Речь пойдет о небольшом поучительном факте в области линейной регрессии, который будет показан экспериментально и объяснен аналитическими формулами на примере простой линейной регрессии.

Этот факт, наверняка, известен тем, кто основательно изучал тему линейной регрессии регулярным образом, однако самоучки и выпускники интернет курсов, имя которым сегодня легион благодаря популярности темы, вполне могли проскочить мимо него.

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

Читать далее

VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели70K

Как пользоваться VS Code в полную силу


image


Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.

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

Как улучшить точность ML-модели используя разведочный анализ

Время на прочтение8 мин
Охват и читатели6.3K

Привет, Хабр! Меня зовут Кирилл Тобола, я Data Scientist и сегодня я расскажу об опыте применения EDA (Exploratory Data Analysis) для улучшения точности ML‑модели.

Добро пожаловать в год 2912, где ваши DS навыки понадобятся для решения космической загадки. Мы получили сообщение с корабля на расстоянии 4 световых лет, и ситуация выглядит плохо.

Крейсер Титаник — межгалактический пассажирский лайнер отправился в путь около месяца назад. Почти 13 000 пассажиров находились на борту. Судно отправилось в свой маршрут, перевозя эмигрантов из нашей солнечной системы к трем новым недавно освоенным экзопланетам.

Следуя через Альфа Центавру на пути к первому пункту назначения жаркой 55 Кансри Е, крейсер Титаник столкнулся с пространственно‑временной аномалией, скрывшейся за облаком космической пыли. К сожалению, крейсер постигла та же участь, что и одноименный корабль ровно 1000 лет назад. В то время как корабль не пострадал, почти половина пассажиров переместились в альтернативное пространство.

Чтобы спасти команду и вернуть потерянных пассажиров, вам необходимо спрогнозировать кто из пассажиров переместился в альтернативную реальность используя данные из поврежденного журнала корабля. Задача помочь им спастись и не дать истории повториться вновь… Хотя может и не нужно и появится новый достаточно неплохой фильм.

Узнать, как решить задачу!

Особенности автоматического дифференцирования в PyTorch. Часть 1

Время на прочтение6 мин
Охват и читатели6.7K

Привет! На связи команда «БАРС Груп». Мы разработали и совершенствуем российскую BI‑платформу Alpha BI. Это возможно благодаря таким фреймворкам, как PyTorch.

PyTorch активно развивается более пяти лет и представляет собой целую экосистему для создания моделей машинного обучения на основе глубоких нейронных сетей. У подобных ИТ‑продуктов широкий спектр применения. В частности, они помогают научному и бизнес‑сообществу проводить исследования, вести разведку данных и проверять гипотезы. Несмотря на то, что на сегодняшний день это один из самых популярных фреймворков машинного обучения в мире, в рунете пока довольно мало статей о его технических особенностях. Попытаемся это исправить.

Читать далее

О «раздутом пузыре» нейросетей

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели104K

На днях я наткнулся на одно любопытное видео.

Моей первой реакцией было Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? отрицание и усталость, потому что всё это я уже слышу на протяжении лет пяти с разной интенсивностью в зависимости от текущих объектов хайпа. В этом посте я попытаюсь разобраться, что из сказанного в видео является правдой.

Утверждения:

1. Закон Мура больше не выполняется из-за фундаментальных физических ограничений ⇒ масштабирование нейросетевых моделей по вычислительному бюджету невозможно.

2. Нейросетевые модели внедряются слишком медленно.

3. Ответы нейросетевых моделей неконтролируемы и неинтерпретируемы.

Дальше обсудим каждое из них.

Читать далее

Как при помощи Rust в 150 раз ускорить код на Python

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели37K

Python — довольно простой в освоении язык, по сравнению с некоторыми другими языками код на нём пишется очень быстро. Но в жертву приносится скорость выполнения кода.


Перепишем часть Python-кода в Rust и импортируем этот код в виде пакета Python в проект. Получим сверхбыстрый пакет Python, который сможем импортировать и использовать, как любой другой пакет. В качестве бонуса добавим многопроцессорность и в итоге получим функцию, которая примерно в 150 раз быстрее обычного кода на Python.


Обзор


Проблему решим в 6 шагов:


  1. Решим вопрос о том, почему функция медленная.
  2. Подготовим проект.
  3. Перепишем функцию в Rust.
  4. Скомпилируем код на Rust и разместим его в пакете Python.
  5. Импортируем пакет Python в проект.
  6. Выполним бенчмарк чистого Python и функции на Rust.

Пакет maturin скомпилирует Rust-код и преобразует его в готовый к работе пакет Python.


1. Решим вопрос о том, почему функция медленная


Важно понять, почему функция работает медленно. Давайте представим, что проекту требуется функция подсчёта количества простых чисел в диапазоне между двумя другими числами:

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

Ближайшие события

10 первых ошибок в карьере ML-инженера

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели39K

Работа ML-инженера заключается не только в обучении моделей — хороший специалист погружается в бизнес-контекст, умеет доносить мысли до коллег без ML-бэкграунда, а также не забывает про тесты, дизайн-документы и документацию. 

Богдан Печёнкин, автор Симулятора ML, собрал 10 ошибок специалистов, которые зачастую встречаются в первые годы карьеры.

Узнать больше

Создание модуля WebAssembly с помощью Emscripten, AssemblyScript и Rust

Уровень сложностиСредний
Время на прочтение57 мин
Охват и читатели7.8K

В этой небольшой заметке предлагается рассмотреть несколько способов компиляции модуля для WebAssembly, используя три разных подхода. Мы реализуем решение одной и той же задачки на трёх языках и скомпилируем полученный код в модуль WebAssembly. Будем использовать:

Emscripten для компиляции кода, написанного на С++

AssemblyScript для компиляции кода, написанного на, собственно, AssemblyScript

wasm-pack для компиляции кода, написанного на Rust

План такой:

Во введении мы обсудим постановку задачи и немножко поговорим о технологии WebAssembly

В программной части мы реализуем функциональность модуля на трёх языках: c++, AssemblyScript и Rust. Поговорим о том, какие при этом возникают сложности и как их можно обойти

Подведём небольшой итог. Станет видно, какая технология хорошая, а какая не очень

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

Читать далее

Как сократить time2market с помощью coding kata?

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели3K

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

За время проекта два раза поменяли команду и заказчика.

Аудит процесса производства с точки зрения time2market показал, что: долго вносятся изменения в код, долго выполняется ручное тестирование и часто после тестирования код возвращается на доработку

Первопричиной низкого time2market являлось то, что команда не владела практикой coding kata, о которой я подробно расскажу в данной статье на примере задачи "Позолоченная роза".

После применения приемов, описанных в этой статье, оставшиеся 95% проекта команда реализовала и сдала за 6 месяцев вместо прогнозируемых 48 лет, что эквивалентно сокращению time2market в 96 раз.

Читать далее

Python модули и пакеты

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели80K

Данная статья написана для новичков, которые изучают язык программирования Python.

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

Читать далее

Python для детей

Время на прочтение4 мин
Охват и читатели33K

До того, как стать преподавателем в университете, я вёл программирование в детском технопарке Кванториум. Это такой центр дополнительного школьного образования куда дети приходили после уроков и изучали программирование, робототехнику, биологию и т.д. Конкретно я вёл занятия по Python, C++ и Arduino.

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

В этой статье я порекомендую книги, сайты и видео для эффективного изучения Python.

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

Читать далее

Пишем сервис для сокращения ссылок на Django, DRF

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели17K

В этой статье мы напишем сервис для сокращения ссылок на Django, DRF.

Итак, на днях я получил тестовое задание от потенциального работодателя и решил убить двух зайцев сразу: выполнить тестовое задание и написать статью, в которой подробно описать весь процесс.

Итак, что мы имеем.

Читать далее

Как разработать Telegram-бота для генерации сложных паролей

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

Чтобы придумать надежный, но запоминающийся пароль, можно взять несколько слов и объединить их в последовательность, напоминающую сюжет. А после — отформатировать и добавить специальные символы. Все просто, но задачу можно автоматизировать — написать Telegram-бота, который будет генерировать пароли прямо в мессенджере. В статье рассказываем, как это сделать.
Читать дальше →

Вклад авторов