Вывод с помощью template
Шаблоны поддерживают замену на основе $ вместо замены на основе %. Substitute выполняет замену шаблона, возвращая новую строку. Отображение — это любой объект, похожий на словарь, с ключами, соответствующими заполнителям шаблона. В этом примере цена и количество являются заполнителями. Аргументы ключевых слов также можно использовать в качестве заполнителей. Заполнители из ключевых слов имеют приоритет, если присутствуют оба.
#практика
Шаблоны поддерживают замену на основе $ вместо замены на основе %. Substitute выполняет замену шаблона, возвращая новую строку. Отображение — это любой объект, похожий на словарь, с ключами, соответствующими заполнителям шаблона. В этом примере цена и количество являются заполнителями. Аргументы ключевых слов также можно использовать в качестве заполнителей. Заполнители из ключевых слов имеют приоритет, если присутствуют оба.
#практика
👍2🔥1😁1
Round() в Python 2 и Python 3
При использовании round() в Python 2 для числа, одинаково близкого к двум целым числам, вернется число, наиболее удаленное от 0. Однако в Python 3 функция round() возвращает четное целое число. Кроме этого, в Python возвращаемое значение имеет тип float. В Python 3 же – int.
#практика
При использовании round() в Python 2 для числа, одинаково близкого к двум целым числам, вернется число, наиболее удаленное от 0. Однако в Python 3 функция round() возвращает четное целое число. Кроме этого, в Python возвращаемое значение имеет тип float. В Python 3 же – int.
#практика
Абстрактные классы
Абстрактные базовые классы — это форма проверки интерфейса. Она более строгая, чем отдельные проверки hasattr() для конкретных методов. Определив абстрактный базовый класс, ты можешь определить общий API для набора подклассов. Эта возможность особенно полезна в ситуациях, когда третья сторона собирается предоставить реализации, такие как плагины для приложения. abc помечает методы базового класса как абстрактные, а затем регистрирует конкретные классы как реализации абстрактной базы.
#практика
Абстрактные базовые классы — это форма проверки интерфейса. Она более строгая, чем отдельные проверки hasattr() для конкретных методов. Определив абстрактный базовый класс, ты можешь определить общий API для набора подклассов. Эта возможность особенно полезна в ситуациях, когда третья сторона собирается предоставить реализации, такие как плагины для приложения. abc помечает методы базового класса как абстрактные, а затем регистрирует конкретные классы как реализации абстрактной базы.
#практика
Черепашья графика
Turtle — это предустановленная библиотека Python, которая позволяет пользователям создавать изображения и фигуры с помощью предоставленного виртуального холста. Экранное перо, которым ты рисуешь, называется черепахой. Данный код позволяет нарисовать ninja twist.
#практика
Turtle — это предустановленная библиотека Python, которая позволяет пользователям создавать изображения и фигуры с помощью предоставленного виртуального холста. Экранное перо, которым ты рисуешь, называется черепахой. Данный код позволяет нарисовать ninja twist.
#практика
👍1
Python и Excel
Библиотека Python xlrd предназначена для извлечения данных из файлов электронных таблиц Microsoft Excel. Предварительно ее нужно установить с помощью pip install xlrd. В данном коде указаны основные команды для чтения данных из excel: количество листов, имена листов, содержимое ячеек, количество строк/столбцов.
#практика
Библиотека Python xlrd предназначена для извлечения данных из файлов электронных таблиц Microsoft Excel. Предварительно ее нужно установить с помощью pip install xlrd. В данном коде указаны основные команды для чтения данных из excel: количество листов, имена листов, содержимое ячеек, количество строк/столбцов.
#практика
🤣2
SQLite
SQLite — это легкая база данных. Поскольку для нее не требуется отдельный сервер базы данных, она часто используется для прототипирования или для небольших приложений. Данный код подключается к базе данных, хранящейся в файле с именем users.db. Предварительно создается файл, если он еще не существует. Ты можешь взаимодействовать с базой данных с помощью операторов SQL.
#практика
SQLite — это легкая база данных. Поскольку для нее не требуется отдельный сервер базы данных, она часто используется для прототипирования или для небольших приложений. Данный код подключается к базе данных, хранящейся в файле с именем users.db. Предварительно создается файл, если он еще не существует. Ты можешь взаимодействовать с базой данных с помощью операторов SQL.
#практика
SSE с помощью asyncio
Server Sent Events (SSE) - это однонаправленное соединение между сервером и клиентом (обычно веб-браузером), которое позволяет серверу «отправлять» информацию клиенту. Это очень похоже на веб-сокеты и длинный опрос. Основное различие между SSE и веб-сокетами заключается в том, что SSE является однонаправленным. Только сервер может отправлять информацию клиенту, тогда как в случае с веб-сокетами оба могут отправлять информацию друг другу. Обычно считается, что SSE намного проще в использовании/внедрении, чем веб-сокеты.
#практика
Server Sent Events (SSE) - это однонаправленное соединение между сервером и клиентом (обычно веб-браузером), которое позволяет серверу «отправлять» информацию клиенту. Это очень похоже на веб-сокеты и длинный опрос. Основное различие между SSE и веб-сокетами заключается в том, что SSE является однонаправленным. Только сервер может отправлять информацию клиенту, тогда как в случае с веб-сокетами оба могут отправлять информацию друг другу. Обычно считается, что SSE намного проще в использовании/внедрении, чем веб-сокеты.
#практика
Декоратор с аргументами
Декоратор может принять только один аргумент. Часто тебе понадобятся дополнительные аргументы. В таком случае ты можешь создать функцию, которая принимает произвольные аргументы и возвращает декоратор. С такими фабриками декораторов ты должен вызывать декоратор с парой круглых скобок, иначе выдаст ошибку.
#практика
Декоратор может принять только один аргумент. Часто тебе понадобятся дополнительные аргументы. В таком случае ты можешь создать функцию, которая принимает произвольные аргументы и возвращает декоратор. С такими фабриками декораторов ты должен вызывать декоратор с парой круглых скобок, иначе выдаст ошибку.
#практика
Cоздание водяного знака
Пакет Pillow позволяет добавлять водяные знаки на твои изображения. Для добавления водяного знака к изображению тебе понадобятся модули Image, ImageDraw и ImageFont из пакета Pillow. Модуль ImageDraw добавляет функциональность для рисования 2D-графики на новых или существующих изображениях. Модуль ImageFont используется для загрузки файлов растровых изображений, шрифтов TrueType и OpenType.
#практика
Пакет Pillow позволяет добавлять водяные знаки на твои изображения. Для добавления водяного знака к изображению тебе понадобятся модули Image, ImageDraw и ImageFont из пакета Pillow. Модуль ImageDraw добавляет функциональность для рисования 2D-графики на новых или существующих изображениях. Модуль ImageFont используется для загрузки файлов растровых изображений, шрифтов TrueType и OpenType.
#практика
Удаление начальных и конечных символов из строки
Предусмотрены три метода, которые позволяют удалять начальные и конечные символы из строки: str.strip, str.rstrip и str.lstrip. Все три метода возвращают новый строковый объект с удаленными нежелательными символами. Первый метод удаляет все начальные и конечные символы. rstrip удаляет конечные символы, lstrip – начальные. По умолчанию удаляются пробелы.
#практика
Предусмотрены три метода, которые позволяют удалять начальные и конечные символы из строки: str.strip, str.rstrip и str.lstrip. Все три метода возвращают новый строковый объект с удаленными нежелательными символами. Первый метод удаляет все начальные и конечные символы. rstrip удаляет конечные символы, lstrip – начальные. По умолчанию удаляются пробелы.
#практика
👍1
Часовой пояс
Практически для любой проблемы, связанной с часовыми поясами, ты можешь использовать модуль pytz. Этот пакет предоставляет базу данных часовых поясов Олсона. Она является стандартом для информации о часовых поясах, используемой во многих языках и операционных системах. В данном примере мы выводим время в нашем регионе, а затем в часовом поясе Индии.
#практика
Практически для любой проблемы, связанной с часовыми поясами, ты можешь использовать модуль pytz. Этот пакет предоставляет базу данных часовых поясов Олсона. Она является стандартом для информации о часовых поясах, используемой во многих языках и операционных системах. В данном примере мы выводим время в нашем регионе, а затем в часовом поясе Индии.
#практика
Приоритетные очереди
Предположим, ты хочешь реализовать очередь, которая сортирует элементы по заданному приоритету. Она всегда возвращает элемент с наивысшим приоритетом при каждой операции извлечения. В данном примере класс PriorityQueue использует модуль heapq для реализации простой приоритетной очереди. Обрати внимание, как элементы с одинаковым приоритетом возвращаются в том же порядке, в котором они были вставлены в очередь.
#практика
Предположим, ты хочешь реализовать очередь, которая сортирует элементы по заданному приоритету. Она всегда возвращает элемент с наивысшим приоритетом при каждой операции извлечения. В данном примере класс PriorityQueue использует модуль heapq для реализации простой приоритетной очереди. Обрати внимание, как элементы с одинаковым приоритетом возвращаются в том же порядке, в котором они были вставлены в очередь.
#практика
Удаление повторов с сохранением порядка
Для избавления от дубликатов можно использовать set. Однако какой-либо порядок при использовании set не сохраняется. Если значения в последовательности можно хэшировать, проблема легко решается с помощью набора и генератора. Если ты пытаешься устранить дубликаты в последовательности нехешируемых типов (например, dicts), нужно внести небольшое изменение в код. Здесь цель аргумента key - указать функцию, которая преобразует элементы последовательности в хешируемый тип для обнаружения дубликатов.
#практика
Для избавления от дубликатов можно использовать set. Однако какой-либо порядок при использовании set не сохраняется. Если значения в последовательности можно хэшировать, проблема легко решается с помощью набора и генератора. Если ты пытаешься устранить дубликаты в последовательности нехешируемых типов (например, dicts), нужно внести небольшое изменение в код. Здесь цель аргумента key - указать функцию, которая преобразует элементы последовательности в хешируемый тип для обнаружения дубликатов.
#практика
👍1
Поиск и замена текста без учета регистра
Для выполнения текстовых операций без учета регистра ты можешь использовать модуль re и указать флаг re.IGNORECASE для различных операций. Обрати внимание на пример. Замена текста не будет соответствовать регистру совпавшего текста. Для исправления этого воспользуемся вспомогательной функцией matchcase. Она делает замену в зависимости от того, какие символы используются в тексте.
#практика
Для выполнения текстовых операций без учета регистра ты можешь использовать модуль re и указать флаг re.IGNORECASE для различных операций. Обрати внимание на пример. Замена текста не будет соответствовать регистру совпавшего текста. Для исправления этого воспользуемся вспомогательной функцией matchcase. Она делает замену в зависимости от того, какие символы используются в тексте.
#практика
👍1
Извлечение подмножества словаря
Для извлечения подмножества словаря воспользуемся генератором словарей (dict comprehension). В данном примере мы создаем два новых словаря. Один состоит из элементов со значениями больше 200. Второй состоит из заранее перечисленных элементов. Аналогично можно сделать с помощью создания кортежей, однако наш метод быстрее и немного проще для чтения.
#практика
Для извлечения подмножества словаря воспользуемся генератором словарей (dict comprehension). В данном примере мы создаем два новых словаря. Один состоит из элементов со значениями больше 200. Второй состоит из заранее перечисленных элементов. Аналогично можно сделать с помощью создания кортежей, однако наш метод быстрее и немного проще для чтения.
#практика
JavaScript теперь в телеграм!
JavaScript — самый популярный язык в мире, он используется в 95% всех сайтов, которые вообще существуют. Теперь у JS есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсов. Стоит подписаться!
JavaScript — самый популярный язык в мире, он используется в 95% всех сайтов, которые вообще существуют. Теперь у JS есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсов. Стоит подписаться!
Вычисления с большими числовыми массивами
Для любых сложных вычислений, связанных с массивами, используй библиотеку NumPy. Основная особенность NumPy заключается в том, что она предоставляет Python объект массива. Он более эффективен и лучше подходит для математических вычислений, чем стандартный список Python. В частности, скалярные операции выполняют операцию поэлементно. Выполнение математических операций, когда оба операнда являются массивами, применяет операцию ко всем элементам и создает новый массив. Применение математических операций ко всем элементам одновременно позволяет очень легко и быстро вычислять функции для всего массива.
#практика
Для любых сложных вычислений, связанных с массивами, используй библиотеку NumPy. Основная особенность NumPy заключается в том, что она предоставляет Python объект массива. Он более эффективен и лучше подходит для математических вычислений, чем стандартный список Python. В частности, скалярные операции выполняют операцию поэлементно. Выполнение математических операций, когда оба операнда являются массивами, применяет операцию ко всем элементам и создает новый массив. Применение математических операций ко всем элементам одновременно позволяет очень легко и быстро вычислять функции для всего массива.
#практика
Бродкастинг
Операции NumPy обычно выполняются с парами массивов поэлементно. В простейшем случае два массива должны иметь одинаковую форму. Бродкастинг ослабляет это ограничение. Рассмотрим пример, где первое значение у нас массив, а второе - скаляр. Второе значение растягивается во время операции в массив той же формы. В результате этого новые элементы – это копии оригинального скаляра. Преимущество бродкастинга заключается в том, что это дублирование значений на самом деле не происходит. Таким образом операции максимально эффективны с точки зрения памяти и вычислений.
#практика
Операции NumPy обычно выполняются с парами массивов поэлементно. В простейшем случае два массива должны иметь одинаковую форму. Бродкастинг ослабляет это ограничение. Рассмотрим пример, где первое значение у нас массив, а второе - скаляр. Второе значение растягивается во время операции в массив той же формы. В результате этого новые элементы – это копии оригинального скаляра. Преимущество бродкастинга заключается в том, что это дублирование значений на самом деле не происходит. Таким образом операции максимально эффективны с точки зрения памяти и вычислений.
#практика
Правила бродкастинга
Бродкастинг следует строгому набору правил, определяющих взаимодействие между двумя массивами. Первое правило: если два массива различаются по количеству измерений, форма массива с меньшим количеством измерений дополняется единицами на его передней (левой) стороне. Второе правило: если форма двух массивов не совпадает ни в одном измерении, массив с формой, равной 1 в этом измерении, растягивается для соответствия другой форме. Третье правило: если в каком-либо измерении размеры не совпадают и ни один из них не равен 1, возникает ошибка.
#практика
Бродкастинг следует строгому набору правил, определяющих взаимодействие между двумя массивами. Первое правило: если два массива различаются по количеству измерений, форма массива с меньшим количеством измерений дополняется единицами на его передней (левой) стороне. Второе правило: если форма двух массивов не совпадает ни в одном измерении, массив с формой, равной 1 в этом измерении, растягивается для соответствия другой форме. Третье правило: если в каком-либо измерении размеры не совпадают и ни один из них не равен 1, возникает ошибка.
#практика