Обновить
512K+

Python *

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

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

Вероятно, вы неправильно используете метод __init__ в Python

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

Автор статьи обращает внимание на проблему, которая заключается в использовании метода __init__ для сложной логики создания объектов, что приводит к разрастанию и усложнению кода. Статья предлагает использовать вспомогательные методы, чтобы разделить логику создания объектов на более мелкие и понятные части. Это упростит код и облегчит понимание того, как объекты создаются и инициализируются.

Читать далее

Сказ о том, как я интерпретатор Brainfuck'а писал

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

Рассказываю о том, как писал интерпретатор языка Brainfuck на Python (с показом исходного кода и его объяснения).

Читать далее

Лексикографический симплекс-метод

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

Лексикографический симлекс-метод.

Решение задачи линейного программирование симлекс-методом и лексикографическим симлекс-методом на Python!

Читать далее

16-, 8- и 4-битные форматы чисел с плавающей запятой

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

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

Я, честно говоря, был удивлён, когда узнал о существовании 4-битного формата для представления чисел с плавающей запятой. Да как такое вообще возможно? Лучший способ узнать об этом — самостоятельно поработать с такими числами. Сейчас мы исследуем самые популярные форматы чисел с плавающей запятой, создадим с использованием некоторых из них простую нейронную сеть и понаблюдаем за тем, как она работает.

Читать далее

Make It Right! Максимум пользы, минимум проблем: рекомендации по написанию API автотестов на Python

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

Привет, Хабр! Меня зовут Катерина, я инженер по автотестированию в команде онлайн-кинотеатра PREMIER и сегодня я хотела бы поделиться с вами своим опытом в написании API автотестов на Python. Я работаю в сфере автотестирования уже довольно давно и на практике встречаю проекты из разных сфер деятельности (банкинг, ритейл, телекоммуникации, строительство, развлечения и др.) зачастую, работая над ними, я сталкивалась с одной общей проблемой - код автотестов был тяжелым в понимании и плохо масштабируемым. Приходилось его капитально рефакторить, а это совсем невесело;) В этой статье  я хочу поделиться советами, как сделать ваш код более «чистым», легким в понимании и расширении. Мне всегда хочется думать, что тот, кто будет работать с моим кодом в будущем, будет думать обо мне и моём коде в положительном ключе, а не ругаться на него. Если вы разделяете мою философию, прошу под кат.

Читать далее

Передаем данные с одноплатника Repka Pi (или Raspberry Pi) в интернет по GSM связи через модуль SIM868 и GPRS протоколу

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

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

Но что, если вы собираете автономно работающее устройство с микрокомпьютером, такое как как радиоуправляемый вездеход, робот присутствия, устройство управления шлагбаумом, систему IoT, турникет или что-то подобное?

Было бы неплохо оснастить это устройство чем-то, похожим по функциональности на смартфон. Тогда вы смогли бы определять его координаты GNSS, обмениваться данными через GPRS, Bluetooth или SMS, а также просто позвонить на свое устройство по телефону и поговорить с ним (или с тем, кто стоит рядом).

Еще не так давно все это было реализовать довольно затруднительно, но сейчас доступны недорогие модули на базе SIM868, в которых есть все необходимое.

В этой статье мы расскажем о том, как настроить обмен данными по каналам GPRS мобильных провайдеров между микрокомпьютерами Raspberry Pi или Repka Pi с сервером, размещенном в интернете. Для обмена будем использовать модуль GSM/GPRS/GNSS Bluetooth HAT.

Читать далее

Четыре способа оптимизации ПО

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

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

Как я за месяц написал интерпретируемый язык программирования на Python

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

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

Предыстория

Мне 14. Обучаясь на втором году Яндекс Лицея, нужно было написать несколько проектов. Первым из них стал проект на PyQT5. Я долго думал над идеей и вспомнил, что летом я хотел создать свой язык, но у меня этого не получилось (Тогда я не понимал как работает парсер и абстрактное синтаксическое дерево, поэтому забросил). И вот, мне пришла идея - сделать свой язык программирования и написать для него IDLE (т.к. тема проекта все таки QT). Ещё полгода назад я изучал асинхронность и многопоточность, поэтому именно одну из этих идей я хотел воплотить в своём языке. В данной статье я хотел рассказать устройство интерпретируемых языков и как их создать.

Читать далее

Химия в Python: Часть 2

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

Прошлая моя статья набрала хороший отклик.

И сегодня я решил написать продолжение той статьи.

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

Я надеюсь вам понравятся мои изменения и сама статья!

Читать далее

Технология единого входа: как работает SSO

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

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

Казалось бы, что может быть проще, чем один вход для всех сервисов? Но за этой кажущейся простотой скрываются сложные технические детали.

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

Первые идеи SSO зародились в конце 1990-х, когда корпоративные сети стали более сложными, и потребность в централизованном управлении доступом стала очевидной. Это был период, когда организации начали искать способы упростить управление учетными записями для своих сотрудников.
В начале 2000-х было активное развитие технологий SSO. Организации начали внедрять SSO для упрощения доступа к корпоративным приложениям и ресурсам. Это также был период появления стандартов, таких как Kerberos, который лег в основу многих ранних реализаций SSO.
С развитием облачных технологий и мобильных устройств SSO начало получать ещё большее распространение. Возникли такие стандарты, как OAuth и OpenID, которые позволили SSO выйти за пределы корпоративных сетей и обеспечить интеграцию с обширным спектром внешних онлайн-сервисов и приложений.

Преимущества SSO очевидны: удобство использования, уменьшение количества паролей, которые нужно запоминать, и, как следствие, снижение риска их забывания или утечки. Но, как и у любой технологии, у SSO есть и свои темные стороны и одна из них - безопасность.
SSO – это процесс, позволяющий пользователям использовать одни учетные данные для доступа к нескольким приложениям или сервисам. Это не только удобно, но и повышает безопасность, уменьшая количество паролей, которые нужно запомнить и вводить.

Читать далее

В закладки тестировщика-автоматизатора: от базовых правил для написания быстрых автотестов до полезных плагинов Pytest

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

Привет, Хабр! Принесли полезный контент для всех, кто пишет автотесты на Python. В подборке — видео докладов с последнего AQA-митапа: о плагинах Pytest, архитектуре автотестов для продукта на open source-движке, а также о критериях понятных тестов (и как их соблюдать на практике). Материалы будут полезны как начинающим, так и опытным AQA-инженерам. Под катом — все видео и ответ на вопрос, зачем это смотреть, от гостей митапа.

Смотреть доклады →

Большие языковые модели (LLM) в задачах

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

Сейчас в мире довольно много разговор о том, что LLM оставят всех нас без работы. Чтобы понять о чем речь рассмотрим на практических примерах какие задачи из коробки могут решать современные большие языковые модели (large language models, LLM).

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля | Геопространственный анализ данных на Python

Читать далее

Самые малоиспользуемые функции Pytest

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

Почему тестировщик не пригласил Pytest на свой день рождения? Потому что он боялся, что тесты падут и вечеринка закончится с ошибкой 404 – "Файл не найден"!

Pytest – это один из наиболее популярных фреймворков для написания тестов на Python. Он известен своей простотой в использовании, обширным сообществом и широким спектром функциональности. Однако, даже если вы являетесь опытным пользователем Pytest, вероятно, вы не используете все его функции. 

В этой статье мы рассмотрим топ малоизвестных, но полезных функций Pytest.

Читать далее

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

Создание фреймворка автоматизации на Python с использованием Pytest, Selene, и других библиотек

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

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

Читать далее

Как утереть нос NumPy с помощью двумерного БПФ

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

Двумерное преобразование Фурье — один из важнейших алгоритмов компьютерной науки этого столетия. Он нашел широкое применение в нашей повседневной жизни — от фильтров Instagram до обработки MP3-файлов.

Наиболее частой реализацией, используемой рядовым пользователем, иногда даже неосознанно, является адаптация из NumPy. Однако, несмотря на популярность, их алгоритм не является самым эффективным. С помощью нескольких простых манипуляций и статьи 2015 года мы обошли алгоритм NumPy по производительности аж на 30-60%. Основная проблема этой реализации заключается в том, что она изначально основана на слабом с точки зрения производительности алгоритме.

По своей сути алгоритм, реализуемый NumPy, является поочередным применением обычного одномерного БПФ (FFT) к двум измерениям, что очевидно не может быть оптимальным решением.

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

Читать далее

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни

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

Однажды, когда я искал эффективное решение для преобразования речи в текст (транскрибации), чтобы применить его в своем проекте умной колонки, обнаружил интересное решение под названием Whisper от широко известной компании Open AI. К сожалению, Whisper не подошел для реализации в моем проекте по «аппаратным» причинам, но его функционал отпечатался в моей душе. Прошло время и меня посетила идея: «Почему бы не разработать телеграмм бота, куда бы пользователь мог отправлять аудиофайл, а в ответ получал текстовую расшифровку и перевод (песни) на родной язык». В этой статье я расскажу о реализации данной идеи и Whisper в этом проекте займет одну из ключевых функций.
Читать дальше →

Сказ о том, как я эмулятор Intel 4004 на Python писал

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

Рассказываю о том, как я решил написать эмулятор дедушки современных микропроцессоров - Intel 4004 с очень ограниченным функционалом на языке Python..

Читать далее

PyTelegramBotAPI на примере проекта сбора обратной связи #3. Клавиатура

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

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

Эта статья направлена именно на новичков, в ней я постараюсь объяснить тему ботов на примере сбора обратной связи.

Читать далее

Как я написал программу для преданалитики клиентов

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

Привет! Меня зовут Александр Кулагин. Я не занимался разработкой профессионально, но заинтересовался созданием нейросетей. После изучения основ Python, NumPy и TensorFlow я захотел попрактиковаться на реальных задачах. Так я решил создать проект, который оценивает, какие компании потенциально заинтересованы в сотрудничестве с конкретным бизнесом.

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

Читать далее

Python и Excel. Прочитать и не потерять

Уровень сложностиСложный
Время на прочтение27 мин
Охват и читатели91K

Привет Хабр!

Сегодня с вами участники профессионального сообщества NTA Пётр Хрущёв.

Как прочитать файл Excel, если он напоминает монстра Франкенштейна? Как склеить множество таких файлов в единый датасет и обработать их, не потеряв ни одной ячейки? Это и многое другое, включая подробности разработки нового инструмента — найдёте в посте.

Python & Excel