Делаем ошибки более читаемыми
В Python есть удобный модуль
Для того, чтобы он заработал, достаточно импортировать его в ваш код.
Вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
В Python есть удобный модуль
pretty_errors
, который делает стандартный вывод исключений и их traceback более удобным для чтения. Для того, чтобы он заработал, достаточно импортировать его в ваш код.
Вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
Как определить нажатия клавиш на клавиатуре с помощью Python
Установим пакет keybord - pip3 install keyboard.
Подробно с этим пакетом можно ознакомиться здесь.
Установим пакет keybord - pip3 install keyboard.
Подробно с этим пакетом можно ознакомиться здесь.
Быстрый deque
Для
deque
предпочтительнее, чем обычный список, когда нужны более быстрые операции добавления и вытаскивания элементов с начала и конца контейнера.deque
обеспечивает линейную сложность O(1) для операций добавления и выталкивания, у стандартного списка сложность по этим операциям O(n).Для
deque
есть возможность использовать стандартные функции — sum
, min
, max
и другие.Поиск уникальных слов в текстовом файле в Python
Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.
Подробнее можно почитать здесь.
Чтобы найти уникальные слова в текстовом файле в Python, необходимо очистить текст, найти слова, а затем найти уникальные.
Подробнее можно почитать здесь.
Функции только с позиционными параметрами
Если с помощью
Однако при попытке вызвать функцию и передать туда именованный аргумент, а не позиционный, получим исключение. А если передать аргумент, явно не указывая имя параметра, то все работает.
Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.
#функции
Если с помощью
inspect
посмотреть на то, как объявлена встроенная функция float
, то увидим, что есть входный параметр x
и еще какой-то непонятый слэш. Однако при попытке вызвать функцию и передать туда именованный аргумент, а не позиционный, получим исключение. А если передать аргумент, явно не указывая имя параметра, то все работает.
Такое поведение как раз задает тот слэш. Параметры, записанные до него, можно передать только как позиционные. После него – как угодно, все будет работать стандартно.
#функции
Превращаем PDF в текст
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль
Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
#pdftotext
Думаю, все периодические работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.
Модуль
pdftotext
создан именно для работы с документами в PDF формате. Устанавливается он через пакетный менеджер pip
, а использовать его проще простого. Все основные операции представлены на картинке выше. Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
#pdftotext
Фреймворк Flask
Один из самых популярных фреймворков для разработки бэкенда. Предназначен для быстрого лёгкого старта работы в создании как простых, так и сложных приложений.
Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи
Один из самых популярных фреймворков для разработки бэкенда. Предназначен для быстрого лёгкого старта работы в создании как простых, так и сложных приложений.
Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи
pip
, затем создаём объект-приложение, далее с помощью декоратора указываем путь в адресной строке и определяем функцию, которая возвращает отображаемый текст. После запуска приложения результат можно увидеть в браузере по адресу http://localhost:5000/
.Media is too big
VIEW IN TELEGRAM
Почему бы не использовать свои навыки Python, чтобы шагнуть в мир Web3? Узнай, как применить свои знания в блокчейн-разработке и начать создавать софты для децентрализованных приложений.
Курс «Web3 Python-разработчик» от команды hodlmod.eth — это идеальная возможность для разработчиков из мира Web2. Мы начинаем с основ Python и переходим к созданию сложных Web3 приложений. Ты научишься писать софт для Телеграм-тапалок, разрабатывать торговых и арбитражных ботов и создавать любые софты для работы с блокчейном.
Этот курс идеально подойдёт, если:
- Ты хотел начать программировать в Web3, но не знал, с чего начать.
- Ты знаешь Python и хочешь применить свои навыки в новой перспективной области блокчейна.
- Тебе интересно создание приложений, которые могут взаимодействовать с блокчейном и смарт-контрактами.
Наши уроки доступны сразу после старта, так что ты сможешь обучаться в своём темпе, одновременно работая и обучаясь. А доступ к закрытому сообществу с экспертами и единомышленниками поможет тебе решить любые вопросы и погрузиться в сферу Web3.
Готов начать новый этап своей карьеры и попробовать себя в децентрализованной разработке? Присоединяйся к нам!
Более подробно почитать про курс - здесь
Cтоимость $555, длительность 3 месяца, стартуем 10 октября на платформе aiostudy.com
@aio_supp - поддержка по всем вашим вопросам.
Курс «Web3 Python-разработчик» от команды hodlmod.eth — это идеальная возможность для разработчиков из мира Web2. Мы начинаем с основ Python и переходим к созданию сложных Web3 приложений. Ты научишься писать софт для Телеграм-тапалок, разрабатывать торговых и арбитражных ботов и создавать любые софты для работы с блокчейном.
Этот курс идеально подойдёт, если:
- Ты хотел начать программировать в Web3, но не знал, с чего начать.
- Ты знаешь Python и хочешь применить свои навыки в новой перспективной области блокчейна.
- Тебе интересно создание приложений, которые могут взаимодействовать с блокчейном и смарт-контрактами.
Наши уроки доступны сразу после старта, так что ты сможешь обучаться в своём темпе, одновременно работая и обучаясь. А доступ к закрытому сообществу с экспертами и единомышленниками поможет тебе решить любые вопросы и погрузиться в сферу Web3.
Готов начать новый этап своей карьеры и попробовать себя в децентрализованной разработке? Присоединяйся к нам!
Более подробно почитать про курс - здесь
Cтоимость $555, длительность 3 месяца, стартуем 10 октября на платформе aiostudy.com
@aio_supp - поддержка по всем вашим вопросам.
Функция reload()
Функция
Функция
#для_начинающих
Функция
reload()
в Python перезагружает ранее импортированный модуль. Это означает, что код модуля выполняется заново, и любые изменения в модуле становятся доступными.Функция
reload()
принимает в качестве аргумента объект модуля. Этот объект должен быть ранее импортированным модулем.#для_начинающих
Typeshed
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых
SCons
SCons — это современная система сборки программного обеспечения, основанная на Python. Она предназначена для автоматизации процесса компиляции и сборки проектов, делая его более эффективным и надежным.
#для_продвинутых
SCons — это современная система сборки программного обеспечения, основанная на Python. Она предназначена для автоматизации процесса компиляции и сборки проектов, делая его более эффективным и надежным.
#для_продвинутых
Что такое глубокая копия?
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.
Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
Простой, но мощный веб-фреймворк
Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.
Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.
Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу
#модули
Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.
Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.
Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу
http://localhost:5000/
и посмотреть результат. #модули
Определяем тип изображения с помощью Python
Установка модуля -
Подробнее можно почитать здесь.
Установка модуля -
pip install imghdr
Предположим, вам предоставлен файл типа изображения, и вам нужно определить тип этого файла. Проще говоря, вам нужно получить расширение этого файла типа изображения. Это можно использовать в проекте, чтобы проверить, действительно ли запрошенное вами изображение является изображением и с каким расширением оно поставляется.Подробнее можно почитать здесь.
Аргументы командой строки
При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной
Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.
#sys
При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной
argv
во встроенном модуле sys
.Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.
#sys
Полезные функции модуля itertools
Модуль
Давайте рассмотрим некоторые полезные функции из этого модуля:
1.
2.
3.
4.
5.
И это далеко не все функции, доступные в модуле
Модуль
itertools
- инструмент в Python
для работы с итерируемыми объектами. Он предоставляет различные функции для создания и манипулирования итераторами, что делает его незаменимым инструментом для разработчиков.Давайте рассмотрим некоторые полезные функции из этого модуля:
1.
itertools.count()
: Эта функция создает бесконечный итератор, который генерирует последовательность чисел, начиная с заданного значения. Это удобно использовать, например, при создании уникальных идентификаторов.2.
itertools.cycle()
: Эта функция создает итератор, который бесконечно повторяет элементы из исходной последовательности. Это может быть полезно, когда вам нужно обрабатывать данные циклически.3.
itertools.islice()
: С помощью этой функции можно получить срез элементов из итератора, подобно срезу для списков. Это позволяет работать с большими итерируемыми объектами без необходимости загрузки их в память целиком.4.
itertools.chain()
: Эта функция объединяет несколько итерируемых объектов в один, что упрощает итерацию по ним как по одному объекту.5.
itertools.groupby()
: Эта функция позволяет группировать элементы итерируемого объекта на основе заданного ключа. Это особенно полезно при анализе и обработке данных.И это далеко не все функции, доступные в модуле
itertools
. Он предоставляет множество возможностей для более эффективной итерации и манипуляции данными.Превью из длинного текста
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод
Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
#строки #textwrap
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод
shorten
из модуля textwrap
. Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
#строки #textwrap
Создание процессов
Класс
При создании экземпляра
Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией
#процессы #multiprocessing
Класс
Process
из встроенного модуля multiprocessing
позволяет создавать процессы без прямого вызова функции fork
, про которую писали раньше на канале.При создании экземпляра
Proccess
необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start
. Внутри метода start
будет вызван fork
и будет исполнена функция в отдельном процессе.Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией
join
.#процессы #multiprocessing
Валидаторы данных
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
Помимо этого,
#validatoras
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
validators
позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.Помимо этого,
validators
позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.#validatoras