Все потоки
Поиск
Написать публикацию
Обновить
432.93

Python *

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

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

Гравитационные маневры

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

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

Читать далее

Практическое обучение с подкреплением: от забав с MuJoCo'м до битв на арене

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

Добрый день, уважаемые хабровчане! Я хочу поделиться с вами очень интересным проектом, над которым работал в последнее время.

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

Готовы? Тогда — вперед!

Внимание! Тяжёлые гифки под катом.

На арену!

Перенос JWT-токенов в куки: Django REST + React

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.8K

Привет, Хабр!

Эта статья родилась из моего опыта реализации авторизации с использованием JWT-токенов, хранящихся в куки. Я решил поделиться этим опытом, чтобы зафиксировать свои знания и, возможно, помочь тем, кто столкнется с похожими задачами

Статья будет полезна тем, кто хочет разобраться в реализации авторизации с JWT-токенами в куки с помощью Django REST Framework.

Читать далее

Автотесты: что есть 100% покрытие API?

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

Ку! Меня зовут Евген, и я Автоматизатор тестирования на Python. В этой статье я расскажу как из вопроса ко мне «на сколько% у нас покрыта API автотестами?» Я выдал базу в виде регламента по автоматизации API.

Читать далее

Цикл в RegEx для поиска подстрок с условием

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

Я хочу поделиться своим изобретением, которое позволяет вам использовать только одно регулярное выражение, которое будет искать подстроку в строке с определенным условием. Если хотите, называйте это циклом в RegEx, которого раньше не существовало!

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

Посмотреть идеи и шаблоны

300k видеозаписей, наводим порядок

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.1K

После того как мне удалось успешно разобраться с аудиозаписями и научиться легко клеить видео для домашнего видеоархива, мне пришла мысль: а почему бы все это не совместить? Можно ведь таким же образом распознать голоса на видео, сделать поиск, выложить куда‑нибудь для удобства доступа и резервирования. Сказано — сделано (ага, сейчас: «вошли и вышли, приключение на 20 минут»).

Читать далее

Как аналитику развернуть локальный эирфлоу и прокинуть хуки в бд?

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

Кому можем быть полезна эта статья?

В вашей компании вообще нету эирфлоу или аналога.

У вас есть эирфлоу но тестирование дага можете проводить только на проде, нету стейджа (деф контура). А если на прод еще и апрув нужен то это вообще сказка.

Вы еще не работает в компании, а на интервью уже спрашивают опыт (для джунов).

Читать далее

Видео Bad Apple в 6500 регулярных выражениях на базе поискового механизма vim

Время на прочтение11 мин
Количество просмотров3.2K

Если я хочу посмотреть видео — разве для этого обязательно покидать vim?

Что ж, прямо в заголовке этого поста я пообещал вам продемонстрировать Bad Apple в vim, пользуясь только поисковыми запросами. Вот Bad Apple в vim, всё, что здесь меняется — только поисковый запрос:

Читать далее

Полный цикл аналитической разработки за пару минут

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.8K

Сталкивались ли вы в вашей компании с проблемами?

1. Невозможностью по быстрому создать таблицу. Вместо этого нужно катить миграцию, получать апрувы от DWH, следить за тем чтобы таблица была производительна и тд
2. Вам не нравится BI вашей компании или нравится но но хотелось бы делать визуализацию быстрее.

Если да, то эта статья для вас!

Читать далее

Signals в Django

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.7K

Привет, Хабр!

В этой статье я расскажу, как использовать Django Signals, чтобы приложение работало как часы. Signals — это встроенный механизм в Django, который позволяет разным частям приложения «общаться» друг с другом через события.

Читать далее

Brython: Python в вашем браузере (ч.3)

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров1.4K

Brython позволяет Python-коду взаимодействовать с кодом JavaScript. Наиболее распространенный шаблон — доступ к JavaScript из Brython. Обратный вариант, хотя и возможен, не распространен. Вы увидите пример вызова функции Python в JavaScript в разделе Модульные тесты JavaScript.

Читать далее

Brython: Python в вашем браузере (ч.2)

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

Ваше знакомство с различными способами установки Brython дало вам общее представление о том, как работает реализация. Вот краткое изложение некоторых характеристик, которые вы узнали на этом этапе руководства:

Читать далее

Brython: Python в вашем браузере

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

Если вы веб-разработчик и предпочитаете писать на Python, а не на JavaScript, то Brython — реализация Python, работающая в браузере, — может оказаться для вас привлекательным вариантом.

Читать далее

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

FastAPI и Vue.js 3: телеграм-бот с MiniApp для записи и автоматических уведомлений. Пишем бэкенд

Время на прочтение41 мин
Количество просмотров16K

Сегодня я рад представить новый масштабный проект, в рамках которого мы подробно рассмотрим технологии и подходы, ранее не освещенные в моих статьях.

На этот раз мы создадим телеграм-бота с MiniApp (ранее известным как WebApp) — это будет бот с интегрированным мини-сайтом прямо в Telegram. Для реализации проекта мы используем два основных фреймворка:

1. FastAPI — мощный Python-фреймворк, который мы задействуем для разработки API нашего телеграм-бота. Мы рассмотрим уникальный подход, позволяющий создать полноценный бэкенд, который будет закрывать как API-методы, так и функционал телеграм-бота.

2. Vue.js 3 — JavaScript-фреймворк, выбранный за его удобство разработки и возможности создания сложных визуальных элементов.

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

Читать далее

Я, робот или как использовать генеративный ИИ для своего первого пет-проекта

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.4K

О том, как мы с Claude 3.5 Sonnet собирали мой первый pet-project «Random Friends Episode».

Любителям LLM и сериала «Друзья» - велком!

How you doin'?

О чем говорит версия проекта?

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров5.6K

Какое-то время подходы к версионированию варьировались от компании к компании, до тех пор, пока соучредитель GitHub Том Престон-Вернер не предложил единый подход к выпуску и нумерации версий проектов. Этот подход называется Семантическим Версионированием и подробно описан в этом документе. В этом тексте я бы хотел проиллюстрировать основные положения документа и разобраться, что нам может рассказать версия проекта.

Читать далее

Миграция данных: Понятие, виды и примеры на Python

Время на прочтение3 мин
Количество просмотров5.4K

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

Читать далее

Brython: Python в вашем браузере (ч.4)

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров7.3K

Метод, используемый для установки Brython, может повлиять на то, как и где вы можете развернуть свой проект Brython. В частности, для развертывания в PyPI лучшим вариантом будет сначала установить Brython из PyPI, а затем создать свой проект с помощью brython-cli. Но типичное веб-развертывание на частном сервере или облачном провайдере может использовать любой выбранный вами метод установки.

Читать далее

Как устроен PyTorch. Чему я научился, самостоятельно реализовав PyTorch без абстракций Python

Время на прочтение11 мин
Количество просмотров14K
Некоторое время назад я задал себе задачу — реализовать micrograd на Rust, используя для этого только стандартную библиотеку. Занимаясь этим, я подумал, что интересно было бы попробовать реализовать на базе micrograd полнофункциональную библиотеку тензоров. Я знаком с PyTorch и поэтому полагал, что это облегчит мне задачу. Но в условиях, когда под рукой нет высокоуровневых абстракций Python, эта задача оказалась гораздо сложнее, чем виделась на первый взгляд.

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

Сортировки Либеральная, по Бакунину и некоторые другие

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.7K

В ходе обсуждения с товарищем docent2007 статьи о сортировке «Милосердный Сталин» у нас сами собой родились дополнительные, весьма полезные методы сортировки. Эти методы определённо могут пригодиться каждому.



Либеральная сортировка


Либеральная сортировка уважает каждое значение и его "право" на место.


def liberal_sort(arr):
    # Каждый элемент остается на своём месте, потому что все равны
    return arr

То есть массив возвращается таким, какой он есть, без изменений, поскольку "у каждого элемента своё уникальное место, которое нельзя нарушить".


Есть еще вариант Либеральной сортировки, где все элементы группируются по какому-то общему признаку, чтобы "никто не чувствовал себя изолированным". Внутри каждой группы порядок сохраняется.


from collections import defaultdict

def liberal_sort_with_groups(arr, key_func=lambda x: x):
    # Группируем элементы по ключу, но внутри групп порядок сохраняется
    groups = defaultdict(list)
    for item in arr:
        groups[key_func(item)].append(item)

    result = []
    for group in groups.values():
        result.extend(group)
    return result

arr = [5, 3, 8, 3, 1, 8, 5]
sorted_arr = liberal_sort_with_groups(arr, key_func=lambda x: x % 2)
print(sorted_arr)
# нечетные и затем четные, но порядок в группах сохранен
# -> [5, 3, 3, 1, 5, 8, 8]
Читать дальше →

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