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

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

С её помощью можно не только вставлять смайлы, но и находить их в тексте.

Можно комбинировать с другими библиотеками, данный модуль подойдет как для простого вывода, так и для украшения текста в ботах ВК или ТГ.

Ну а на картинке представим не работу библиотеки (она и так понятна), а интересный код, где вместо переменных используются эмоджи. Так делать нельзя, но код работает.
Forwarded from Python Education
Библиотека schedule

Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.

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

Библиотеку необходимо установить:

install schedule
Forwarded from Python Education
Функции высшего порядка

Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто

Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.

Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.

Не забывайте комбинировать функции!
Forwarded from Python Education
Избавляемся от вложенных циклов с помощью функции product

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

К счастью, существует очень полезная встроенная функция — product. Она является частью встроенного модуля Python — itertools. С ее помощью мы можем избавиться от вложенных циклов.
Forwarded from Python Education
Нахождение наиболее частых элементов списка

Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком Counter из библиотеки collections.

Метод Counter.most common(x) возвращает x кортежей, в которых первое значение – элемент, а второе – количество его повторений.
Forwarded from Python Education
MongoDB: Удаление документов

Чтобы удалить один документ, используй delete one(). Первый параметр метода delete one() — это объект запроса, определяющий, какой документ нужно удалить. Чтобы удалить более одного документа, используй метод delete many(). Чтобы удалить все документы в коллекции, передай пустой объект запроса в delete many().
Forwarded from Python Education
most common

Метод most common выводит список кортежей вида (элемент, число повторений). Аргумент соответствует желаемому числу кортежей. По умолчанию выводится список кортежей для всех элементов переданного списка.
Forwarded from Python Education
Функция sorted сортирует любые итерируемые объекты по возрастанию и возвращает итоговый список, т.е. в переменную d будет сохранен список [a, b, c]

a, b, c = d — происходит неявная распаковка списка d в переменные a, b и c, вследствие чего каждой переменной будет присвоено соответствующее значение:
a = a
b = b
c = c

d = c, b, a — присваиваем переменной d кортеж (c, b, a), таким образом d будет равно (с , b , a )

''.join(d) — объединяем элементы кортежа в одну строку без использования разделителей и получаем "cba"

Затем получившуюся строку выводим на экран и получаем ответ — cba
Forwarded from Python Education
SciPy: Расстояние Хэмминга

Расстояние Хэмминга — это метрика для сравнения двух строк двоичных данных. При сравнении двух двоичных строк одинаковой длины расстояние Хэмминга — это количество битовых позиций, в которых два бита различны. Используется для обнаружения или исправления ошибок при передаче данных по компьютерным сетям. Также применим в теории кодирования для сравнения слов данных одинаковой длины.
Forwarded from Python Education
Функция reduce

Модуль functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.

Таким образом, в примере выше reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.
Forwarded from Python Education
Управление экспортами

В некоторых языках имеются очень чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. К примеру в Go экспортируются только сущности с именами с большой буквы. В Python другая картина — экспортируется всё. Но только не при использовании атрибута all .

В примере на картинке экспортируется только функция hja. А если оставить атрибут all пустым, при попытке экспорта из модуля ничего не будет экспортировано, но возникнет ошибка AttributeError.
Forwarded from Python Education
Отлавливаем ошибки с помощью assert

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

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

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

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

TypeGuard позволяет писать любое выражение и сообщать твоему средству проверки типов, что оно их сужает. Функция сужения типа — это функция, которая принимает хотя бы один аргумент и возвращает bool. Вместо пометки возвращаемого типа как bool используется TypeGuard[T], где True означает, что первый аргумент имеет тип T, а False — нет.
Forwarded from Python Education
Паттерн проектирования Singleton

Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.

Метод new вызывается для создания экземпляра класса перед вызовом init. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).

В примере мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если экземпляр уже создан, то просто его возвращаем.

То есть при вызове конструктора класса Singleton будет возвращаться один и тот же объект из памяти
Forwarded from Python Education
Кэшированные атрибуты

Во встроенном пакете functools присутствует декоратор @cached_property, позволяющий кэшировать результат метода и загнать его в атрибут.

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

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

Биномиальное распределение — это дискретное распределение. Оно описывает результат бинарных сценариев. К примеру, подброс монетки. Имеется три параметра: n - количество испытаний; p - вероятность появления каждого испытания (например, при подбрасывании монеты по 0,5); size - форма возвращаемого массива.
Forwarded from Python Education
wxPython: Контекстное меню и панель инструментов

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

Декоратор functools total ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
Forwarded from Python Education
Метод файла file.readlines() читает файловый объект file построчно, пока не достигнет конца файла EOF и возвращает список, содержащий строки или байтовые объекты файла в зависимости от режима, в котором открыт файл функцией open(). Конечный символ новой строки n сохраняется в строке.

Если присутствует необязательный аргумент sizehint, то читаются целые строки, составляющие приблизительно sizehint байт (округляется до внутреннего размера буфера).

Пустая строка возвращается только по достижении конца файла, т. е. EOF встречается немедленно.
Forwarded from Python Education
Работа с ip адресами

Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.

Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).