Превью из длинного текста
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.
Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
Подписывайтесь на канал 👉@pythonofff
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.
Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
Подписывайтесь на канал 👉@pythonofff
🔥3👍2
Обход дочерних элементов
С помощью атрибута children мы можем получить дочерние элементы тега.
Подписывайтесь на канал 👉@pythonofff
С помощью атрибута children мы можем получить дочерние элементы тега.
Подписывайтесь на канал 👉@pythonofff
👍1
Использование списков в качестве стеков
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод append, для извлечения – pop.
Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
Подписывайтесь на канал 👉@pythonofff
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод append, для извлечения – pop.
Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
Подписывайтесь на канал 👉@pythonofff
👍1
Пример: использование метод remove() для удаления элемента из списка
В этом списке есть строки и целые числа. Есть повторяющиеся элементы: строка «Mars» и число 12.
Подписывайтесь на канал 👉@pythonofff
В этом списке есть строки и целые числа. Есть повторяющиеся элементы: строка «Mars» и число 12.
Подписывайтесь на канал 👉@pythonofff
❤1
Легкий веб-фреймворк
Bottle – это быстрый, простой и легкий микро-веб-фреймворк WSGI для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.
Несмотря на свою минималистичность, Bottle предоставляет довольно широкие возможности, которых на 100% хватает для мелких и средних проектов. Вот список основных возможностей: routing, templates, POST-routing, обработка форм, cookies и сервер.
После запуска подобного примера можете перейти в браузере по адресу localhost:5000/hello/world и посмотреть на результат, полученный из всего пяти строк кода.
Подписывайтесь на канал 👉@pythonofff
Bottle – это быстрый, простой и легкий микро-веб-фреймворк WSGI для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.
Несмотря на свою минималистичность, Bottle предоставляет довольно широкие возможности, которых на 100% хватает для мелких и средних проектов. Вот список основных возможностей: routing, templates, POST-routing, обработка форм, cookies и сервер.
После запуска подобного примера можете перейти в браузере по адресу localhost:5000/hello/world и посмотреть на результат, полученный из всего пяти строк кода.
Подписывайтесь на канал 👉@pythonofff
Создание процессов
Класс Process из встроенного модуля multiprocessing позволяет создавать процессы без прямого вызова функции fork.
При создании экземпляра Proccess необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start. Внутри метода start будет вызван fork и будет исполнена функция в отдельном процессе.
Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией join.
Подписывайтесь на канал 👉@pythonofff
Класс Process из встроенного модуля multiprocessing позволяет создавать процессы без прямого вызова функции fork.
При создании экземпляра Proccess необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start. Внутри метода start будет вызван fork и будет исполнена функция в отдельном процессе.
Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией join.
Подписывайтесь на канал 👉@pythonofff
👍2
Одноразовый метод в классе
В случае, если вдруг понадобится в классе функция, которая будет использоваться всего один раз, после чего будет использоваться другая функция, можно воспользоваться приемом на картинке.
Последней строчкой метода call является переопределение самого этого метода на другой, а именно normal_call. Таким образом, изначальный код call будет исполнен только один раз.
Подобный прием будет полезен в тех случаях, когда при самом первом вызове метода в классе требуются выполнить одноразовые действия, которые в дальнейшем не нужны.
Подписывайтесь на канал 👉@pythonofff
В случае, если вдруг понадобится в классе функция, которая будет использоваться всего один раз, после чего будет использоваться другая функция, можно воспользоваться приемом на картинке.
Последней строчкой метода call является переопределение самого этого метода на другой, а именно normal_call. Таким образом, изначальный код call будет исполнен только один раз.
Подобный прием будет полезен в тех случаях, когда при самом первом вызове метода в классе требуются выполнить одноразовые действия, которые в дальнейшем не нужны.
Подписывайтесь на канал 👉@pythonofff
Красивые таблицы в терминале
PrettyTable – это простая библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить привычным способом через pip.
Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.
Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами. Так что возможностей у этого модуля предостаточно.
Подписывайтесь на канал 👉@pythonofff
PrettyTable – это простая библиотека, предназначенная для быстрого и легкого представления табличных данных в виде ASCII. Модуль можно установить привычным способом через pip.
Для создания таблиц и работы с ними используется класс PrettyTable из этого модуля. Задать название для столбцов можно с помощью атрибута fields_name. Строки в таблицу добавляются путем вызова метода add_row.
Более того, модуль prettytable позволяет регулировать различные параметры, сортировать данные, работать с html, а также взаимодействовать с csv и sql таблицами. Так что возможностей у этого модуля предостаточно.
Подписывайтесь на канал 👉@pythonofff
❤4👍2👌2
Импорт as
Мы можем определить собственное имя для импортированного модуля, используя оператор import as.
Подписывайтесь на канал 👉@pythonofff
Мы можем определить собственное имя для импортированного модуля, используя оператор import as.
Подписывайтесь на канал 👉@pythonofff
👍2👎1🤯1
Пример разделения строки CSV с вводом пользователем
Давайте посмотрим на реальный пример, где пользователь вводит данные CSV, а мы разбиваем их на список строк.
Подписывайтесь на канал 👉@pythonofff
Давайте посмотрим на реальный пример, где пользователь вводит данные CSV, а мы разбиваем их на список строк.
Подписывайтесь на канал 👉@pythonofff
👍3👎1
Модуль argparse
Модуль argparse является предпочтительным способом анализа аргументов командной строки. Он предоставляет множество опций, таких как позиционные аргументы, значение по умолчанию для аргументов, справочное сообщение, указание типа данных и т.д. В самой простой форме мы можем использовать его, как показано ниже.
Подписывайтесь на канал 👉@pythonofff
Модуль argparse является предпочтительным способом анализа аргументов командной строки. Он предоставляет множество опций, таких как позиционные аргументы, значение по умолчанию для аргументов, справочное сообщение, указание типа данных и т.д. В самой простой форме мы можем использовать его, как показано ниже.
Подписывайтесь на канал 👉@pythonofff
👍1👎1
Множественный вызов метода randint()
Для этого кода повторение метода random.randint() дает нам разные случайные целые числа для каждого вызова в пределах от 10 до 100.
Подписывайтесь на канал 👉@pythonofff
Для этого кода повторение метода random.randint() дает нам разные случайные целые числа для каждого вызова в пределах от 10 до 100.
Подписывайтесь на канал 👉@pythonofff
👍3👎1
Как сделать запрос DELETE
Как следует из названия, если вы хотите удалить ресурс из API, вы можете использовать запрос DELETE. Удалим товар с идентификатором, равным 21.
Подписывайтесь на канал 👉@pythonofff
Как следует из названия, если вы хотите удалить ресурс из API, вы можете использовать запрос DELETE. Удалим товар с идентификатором, равным 21.
Подписывайтесь на канал 👉@pythonofff
👍3❤1
Сила «однострочников» (One-Liners)
Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно
Подписывайтесь на канал 👉@pythonofff
Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно
Подписывайтесь на канал 👉@pythonofff
🥴5🥰4🤔1🤡1
Методов списков list
Напоминаю, списки в Python – упорядоченные последовательности элементов различных типов данных. Списки можно изменять, например, добавлять новые элементы.
1. list.append(x) – добавляет элемент, переданный в качестве аргумента, в конец списка. Этот метод является самым простым и распространённым в коде.
2. list.insert(i, x) – вставляет элемент в переданную позицию. Первый аргумент означает индекс элемента, перед которым будет добавлено новое значения.
Таким образом, list.insert(0, x) вставит элемент в начало списка, а list.insert(len(list), x) эквивалентно записи list.append(x).
3. list.extend(iterable) – расширяет список, добавляя все элементы другой коллекции.
Подписывайтесь на канал 👉@pythonofff
Напоминаю, списки в Python – упорядоченные последовательности элементов различных типов данных. Списки можно изменять, например, добавлять новые элементы.
1. list.append(x) – добавляет элемент, переданный в качестве аргумента, в конец списка. Этот метод является самым простым и распространённым в коде.
2. list.insert(i, x) – вставляет элемент в переданную позицию. Первый аргумент означает индекс элемента, перед которым будет добавлено новое значения.
Таким образом, list.insert(0, x) вставит элемент в начало списка, а list.insert(len(list), x) эквивалентно записи list.append(x).
3. list.extend(iterable) – расширяет список, добавляя все элементы другой коллекции.
Подписывайтесь на канал 👉@pythonofff
❤5
Ограничьте использование процессора и памяти
Если вы не хотите оптимизировать память вашей программы или корректировать работу процессора, то можно просто установить лимиты. К счастью, в Python для этого есть специальная библиотека
Подписывайтесь на канал 👉@pythonofff
Если вы не хотите оптимизировать память вашей программы или корректировать работу процессора, то можно просто установить лимиты. К счастью, в Python для этого есть специальная библиотека
Подписывайтесь на канал 👉@pythonofff
👍3
3 трюка с itertools
Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один.
Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.
А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция combinations. Вторым аргументом можно задать длину этой самой комбинации.
Подписывайтесь на канал 👉@pythonofff
Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один.
Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.
А для того, чтобы создавать комбинации из элементов выбранного итерируемого объекта, вам понадобится функция combinations. Вторым аргументом можно задать длину этой самой комбинации.
Подписывайтесь на канал 👉@pythonofff
❤2
Правильным ответом является [1, 2]
Происходит так из-за того, что дефолтные параметры хранятся в неизменном кортеже в атрибуте функции defaults, который создается один раз в момент определения функции.
А для того, чтобы добиться правильного поведения функции, следует воспользоваться ключевым словом None при о
Подписывайтесь на канал 👉@pythonofff
Происходит так из-за того, что дефолтные параметры хранятся в неизменном кортеже в атрибуте функции defaults, который создается один раз в момент определения функции.
А для того, чтобы добиться правильного поведения функции, следует воспользоваться ключевым словом None при о
Подписывайтесь на канал 👉@pythonofff
👍2❤1
Частичное применение
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
Подписывайтесь на канал 👉@pythonofff
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
Подписывайтесь на канал 👉@pythonofff
👍1
Именование среза с использованием функции slice
Работа с множеством значений, которые заданы индексами, может быстро обернуться беспорядком – как в плане поддержки, так и в плане читабельности кода.
Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Но есть и более удачный способ написания качественного кода, как показано на картинке
Подписывайтесь на канал 👉@pythonofff
Работа с множеством значений, которые заданы индексами, может быстро обернуться беспорядком – как в плане поддержки, так и в плане читабельности кода.
Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Но есть и более удачный способ написания качественного кода, как показано на картинке
Подписывайтесь на канал 👉@pythonofff