Программы для программирования
20 subscribers
849 photos
1 video
26 files
41 links
Download Telegram
Forwarded from Python Education
Библиотека Flask

Как вы уже догадались контент можно вставлять переменными. Достаточно воспользоваться форматированием строк (f"a + 1={a + 1}"). Но тогда код получится слишком огромным. Вы можете составить шаблон прямо в html коде и сохранить его как отдельную страницу. А затем при выдаче он будет просто выполнен. К примеру в файле 'index.html' будет лежать такой код: '<h1>{{name}}</h1><p>{{content}</p>'

В flask шаблонах используем {{}} вместо {} для вставки переменных. Доступны циклы и условия, но они добавляются по-другому. Об этом позже. И для выполнения года надо рендерить страницу.
Forwarded from Python Education
Библиотека subprocess

И в заключение покажем интересную и в некотором роде полезную программу, которая показывает все wi-fi сети.

Мы еще не использовали check_output, он выполняет команду и возвращает ее вывод. Похожее мы уже проделывали в прошлом посте.

Не забывайте, что иногда требуется остановить или даже "убить" процесс. Это делается методами класса Popen, а именно terminate() и kill().

С данным модулем можно выполнить очень много полезных действий, которые недоступны интерпретатору Python при других путях решения.
Forwarded from Python Education
Ищем ошибки с помощью assert

Инструкция assert принимает логическое выражение и необязательное сообщение. Используется для проверки типов, значений аргумента и вывода функции, а ещё для отладки, поскольку останавливает программу в случае ошибки.

Если выполнить инструкцию assert с логическим выражением, результат которого равен True, то ничего не произойдет. Но в случае с False будет сгенерировано исключение AssertionError.

Однако не нужно пытаться обработать исключение AssertionError блоком try-except, так как assert тогда теряет свой смысл.

В примере на картинке проверяется, является ли переданный аргумент числовым типом данных. Если не является, то будет вызвано исключение и выведено указанное сообщение.
Forwarded from Python Education
Выполнение функций по заданному расписанию

Часто нужно писать код, который должен выполниться в определенный промежуток времени, по расписанию. Для решения такой задачи есть несколько решений, одно из них — библиотека aiocron.

Она позволяет описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция hi будет выполняться каждые 30 минут.
Forwarded from Python Education
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Forwarded from Python Education
Метод rindex

Метод занимается поиском подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError.

Метод возвращает наибольший индекс совпадения символа/подстроки.
Forwarded from Python Education
Изменение класса после создания

Вы можете добавлять, изменять и удалять свойства и методы класса после его создания, даже после того, как будут созданы экземпляры этого класса. Для этого достаточно использовать запись Class.attribute. Изменения применятся ко всем экземплярам класса, вне зависимости от того, когда они были созданы.

Фантастика. Но не увлекайтесь изменением существующих методов, это дурной тон. Кроме того, это может нарушить работу методов, использующих изменяемый класс. С другой стороны, добавление методов менее опасно.
Forwarded from Python Education
Примитивный метод удаления символа из строки

Суть этого метода проста. Мы пишем цикл и создаем новую пустую строку. Цикл работает так: все символы кроме элемента с индексом n помещаются в новую строку. (n — индекс элемента, который нам нужно удалить)
Forwarded from Python Education
Процесс делегирования в Python

Делегирование – это объектно-ориентированный подход, также называемый паттерном проектирования.

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

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

Метод write() в классе upcase конвертирует строку из нижнего в верхний регистр до вызова другого метода. Собственно сама делегация осуществляется за счет использования объекта self. out.
Forwarded from Python Education
Очищаем строки

В данном примере мы видим, как при помощи словаря со значениями для замены символов и метода translate, символы:
• переноса строки n
• табуляции t
• перехода на один символ назад b
заменяются на обычные пробелы.
Forwarded from Python Education
Метод islower

Метод str.islower() возвращает True, если все символы в строке имеют нижний регистр (строчные), при этом строка не должна быть пустой, то есть должна иметь хотя бы один символ в нижнем регистре и не состоять из одних пробелов.

Метод str.islower() во всех других случаях возвращает False.

Строка состоящая из символов не имеющих возможности приведение к нижнему регистру также будет возвращать False.

Для приведения символов строки к верхнему регистру используйте метод str.lower().
Forwarded from Python Education
Удаление специальных символов при помощи join() и filter()

Давайте воспользуемся методом соединения join(). Откройте ваш файл и инициализируйте строку с обычными и специальными символами. Первоначальная строка будет выводиться на экран первой.

Далее мы используем метод join() с функцией filter() для строковой переменной v1, чтобы отфильтровать символы. В данном случае для сбора только обычных символов из переменной v1 используется метод isalnum().
Forwarded from Python Education
Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .
Forwarded from Python Education
Функция contextmanager()

Функция contextmanager() модуля contextlib представляет собой декоратор, который можно использовать для определения фабричной функции для оператора контекстных менеджеров with без необходимости создавать класс или отдельные методы enter() и exit().

Хотя многие объекты изначально поддерживают использование в операторах with, иногда необходимо управлять ресурсом, который сам по себе не является диспетчером контекста и не реализует метод close() для использования с функцией contextlib.closing().
Forwarded from Python Education
setdefault

Метод setdefault() возвращает значение элемента с указанным ключом. Если ключ не существует, вставляет ключ с указанным значением. Если ключ отсутствует в словаре и значение не указано, возвращается None.
Forwarded from Python Education
math.gcd

Метод math.gcd() возвращает наибольший общий делитель двух целых чисел. НОД — наибольший общий делитель, на который числа делятся без остатка. Когда оба числа равны 0, функция возвращает 0. Если любое число является символом, возникает TypeError.
Forwarded from Python Education
math.isclose

Метод math.isclose() проверяет, близки ли два значения друг к другу или нет. Возвращает True, если значения близки, иначе False. Близость двух значений определяется в соответствии с заданными абсолютными и относительными допусками. Относительная допуск — это максимально допустимая разница между двумя числами. Значение по умолчанию: 1e-09. Абсолютный допуск используется для сравнения значений, близких к 0. Значение должно быть не менее 0.
Forwarded from Python Education
Вычисляем размер объектов в памяти

Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.

Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.

Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .

Функция getsizeof вызывает метод sizeof объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.
Forwarded from Python Education
Как эффективно по отношению к памяти сравнить два неупорядоченных списка

Давайте предположим, что у вас есть два списка, которые содержат одинаковые элементы. Однако эти элементы стоят в разном порядке.

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

• Мы можем использовать метод collections.Counter
• Можно использовать sorted(), если объекты поддаются порядку.
Forwarded from Python Education
Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip. Посмотрите пример кода ниже.