среда, 8 мая 2024 г.

Некоторые полезные модули Python

Модуль array - позволяет работать с массивами в python. Массивы очень похожи на списки, но с ограничением на тип данных и размер каждого элемента.

Модуль bisect - обеспечивает поддержку списка в отсортированном порядке с помощью алгоритма бинарного поиска.

Модуль calendar - позволяет напечатать себе календарик (а также содержит некоторые другие полезные функции для работы с календарями).

Модуль cmath - предоставляет функции для работы с комплексными числами.

Модуль collections - предоставляет специализированные типы данных, на основе словарей, кортежей, множеств, списков.

Модуль copy - поверхностное и глубокое копирование объектов. Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал. Данный модуль предоставляет общие (поверхностная и глубокая) операции копирования.

Модуль csv - для работы с файлами в формате CSV.

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

Модуль fractions - предоставляет поддержку дробей.

Модуль functools - сборник функций высокого уровня: взаимодействующих с другими функциями или возвращающие другие функции.

Модуль glob - находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы "*" (произвольное количество символов), "?" (один символ), и диапазоны символов с помощью [].

Модуль itertools - сборник очень полезных итераторов.

Модуль json - позволяет кодировать и декодировать данные в формате JSON.

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

Модуль os - предоставляет множество функций для работы с операционной системой, причём их поведение, как правило, не зависит от ОС, поэтому программы остаются переносимыми. Здесь будут приведены наиболее часто используемые из них.

Модуль os.path - является вложенным модулем в модуле os, и реализует некоторые полезные функции для работы с путями.

Модуль pickle - реализует мощный алгоритм сериализации и десериализации объектов Python. "Pickling" - процесс преобразования объекта Python в поток байтов, а "unpickling" - обратная операция, в результате которой поток байтов преобразуется обратно в Python-объект.

Модуль random - предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности.

Модуль shutil - содержит набор функций высокого уровня для обработки файлов, групп файлов, и папок. В частности, доступные здесь функции позволяют копировать, перемещать и удалять файлы и папки. Часто используется вместе с модулем os.

Модуль subprocess - отвечает за выполнение следующих действий: порождение новых процессов, соединение c потоками стандартного ввода, стандартного вывода, стандартного вывода сообщений об ошибках и получение кодов возврата от этих процессов.

Модуль sys - обеспечивает доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором Python.

Модуль time - модуль для работы со временем в Python.

Модуль unittest - поддерживает автоматизацию тестов, использование общего кода для настройки и завершения тестов, объединение тестов в группы, а также позволяет отделять тесты от фреймворка для вывода информации.

вторник, 27 февраля 2024 г.

Что нужно знать разработчику Телеграм-ботов?

Подсмотрел список в курсе про Телеграм-ботов на Степике.

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

  • aiogram - основной python-фреймворк для разработки ботов
  • aiogram-dialog - управление диалогами
  • fluentogram - интернационализация
  • redis - хранилище ключ-значение, кэш
  • postgres - реляционная база данных
  • sqlalchemy - ORM
  • nats - очередь, FSM-storage
  • elastic - поисковый движок
  • fastAPI - API
  • taskiq - планировщик
  • clickhouse - колоночная база данных
  • prometheus/grafana - система мониторинга, аналитика
  • vector - логирование
  • kafka - очередь
  • manticore - поисковый движок
  • jaeger - трассировка сервисов
  • aiohttp - асинхронный HTTP-клиент/сервер

 

понедельник, 26 февраля 2024 г.

Что нужно знать разработчику помимо Python

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

  • Как работают сети - поможет учебник "Компьютерные сети" автора Олифер 
  • Как работает протокол HTTP - там же
  • Базы данных - какие бывают, какие лучше использовать в каких случаях, для реляционных изучить язык SQL
  • Фреймворк для разработки бэкэнда - типа Django, Flask или FastAPI
  • Как работать с контейнерами Docker - поможет книга "Использование Docker" автора Эдриен Моуэт
  • Как работать в ОС на основе ядра Linux - основные команды, работа в терминале

воскресенье, 31 декабря 2023 г.

Виртуальное окружение (virtual environment -> venv) в Python

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

Однако при разработке чего-то более сложного, что требует установки внешних библиотек или фреймворков, например Django или aiogram, вам обязательно нужно создавать виртуальное окружение для каждого вашего проекта. Это позволит вам не мешать кучу пакетов в системном Python (что особенно важно, когда вы работаете в ОС на основе Linux, где активно используется Python именно в недрах системы).

Создаётся виртуальное окружение так:

  1. Открываете терминал
  2. Создаёте каталог, в котором будет лежать ваш проект (командой mkdir), и переходите в него, используя команду cd
  3. Далее выполняете в Windows команду python -m venv venv, а в Linux python3 -m venv venv
  4. После этого виртуальное окружение надо "активировать". Делается это командой в Windows - venv\Scripts\activate.bat , а в Linux - source venv/bin/activate

В терминале перед приглашением командной строки появится (venv) означающее, что виртуальное окружение активировано и все действия типа установки библиотек или фреймворков через команду pip install будут выполнены внутри этого виртуального окружения.

понедельник, 28 августа 2023 г.

Django. Где узнать про него

https://proproprogs.ru/django - сайт Балакирева

https://tutorial.djangogirls.org/ru/ - проект Django Girls

https://www.youtube.com/@DjangoSchool - канал Django School 

https://www.youtube.com/playlist?list=PLA0M1Bcd0w8yU5h2vwZ4LO7h1xt8COUXl - курс (не полный, только 73 из 84 видео, за полным курсом с заданиями надо идти на Степик и покупать) от Балакирева

Есть также книга автора Антонио Меле. Django 4 в примерах

воскресенье, 26 февраля 2023 г.

IDE для разработки на Python

IDE (Integrated Development Environment), по-русски часто пишут "Интегрированная среда разработки" - это класс программ, которые позволяют программистам писать код более быстро за счет того, что IDE включает в себя и редактор кода, и отладчик (дебаггер) и средства для интеграции с Git, и редакторы для интерфейса пользователя (UI). То есть в одной программе собрано (интегрировано) много полезных инструментов.

Python уже содержит в себе IDE (крайне неудобную) - IDLE, не советую это использовать вообще, сбережете нервы и время.

В настоящее время для написания кода на Python популярными IDE являются:

PyCharm. Существуют две версии Community Edition (бесплатная, чтобы скачать, пролистайте страницу их сайта вниз до конца) и Professional Edition (по подписке). Community версия поддерживает разработку только на Python, тогда как Professional версия поддерживает дополнительно языки разметки HTML, CSS, языки JS и SQL.

VS Codium (это свободная от телеметрии MicroSoft сборка из исходных кодов проекта VS Code). Доступна бесплатно. Так как это изначально редактор кода с плагинами, то для разработки на Python эту IDE необходимо сначала настроить. Этот процесс несложный и даже автоматизированный. В сети есть достаточно гайдов на эту тему.

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

Spyder. Это IDE тоже с открытым исходным кодом, распространяющаяся по лицензии MIT. Программа начинала свое развитие, как IDE, ориентированная на использование Python в научном направлении.

Для начинающих изучать Python этих IDE абсолютно достаточно.

Необходимо также понимать, что код на Python (да и на любом другом языке программирования) можно писать хоть в Блокноте, хоть в Vim или NeoVim или, например, в Geany. Просто это потребует от пользователя дополнительных знаний и затрат времени на настройку окружения.

Некоторые полезные модули Python

Модуль array - позволяет работать с массивами в python. Массивы очень похожи на списки, но с ограничением на тип данных и размер каждого эл...