Строки в апострофах и в кавычках
Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
🔗 Python tricks
Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
🔗 Python tricks
Строки в апострофах и в кавычках
Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
🔗 Python tricks
Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
🔗 Python tricks
PySnooper
PySnooper — это библиотека для отладки, которая позволяет логгировать каждую строку выполняемого кода вместе со значениями переменных. Она полезна, когда нужно понять, как работает код и где происходят изменения переменных.
Для использования необходимо декорировать функцию, которую нужно отладить с помощью
Результат использования pysnooper предоставлен на изображении.
🔗 Python tricks
PySnooper — это библиотека для отладки, которая позволяет логгировать каждую строку выполняемого кода вместе со значениями переменных. Она полезна, когда нужно понять, как работает код и где происходят изменения переменных.
Для использования необходимо декорировать функцию, которую нужно отладить с помощью
@pysnooper.snoop()
. Вид лога можно настроить с помощью параметров: variables — какие переменные отображать, depth — максимальная вложенность структур данных, prefix — префикс для каждой строки лога.Результат использования pysnooper предоставлен на изображении.
🔗 Python tricks
Декоратор @frozenДекоратор
@frozen
— это не встроенный декоратор, а часто используемый соглашение в библиотеках и коде на Python. Он используется для обозначения, что класс или объект должен быть неизменяемым (immutable). Неизменяемые объекты не могут быть изменены после создания. Это означает, что их атрибуты и состояние остаются постоянными, что может быть полезно во многих сценариях.Преимущества неизменяемых объектов включают в себя упрощение работы с объектами в многозадачных приложениях, избегание побочных эффектов и более безопасную работу с объектами в разных частях кода.
🔗 Python tricks
Строки в тройных апострофах или кавычках
Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд.
🔗 Python tricks
Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд.
🔗 Python tricks
Почему при получаем исключение UnboundLocalError, хотя переменная имеет значение?
Это происходит потому, что, когда вы делаете присваивание переменной в области видимости, она становится локальной в этой области и скрывает другие переменные с таким же именем во внешних областях.
Когда последняя инструкция в
🔗 Python tricks
Это происходит потому, что, когда вы делаете присваивание переменной в области видимости, она становится локальной в этой области и скрывает другие переменные с таким же именем во внешних областях.
Когда последняя инструкция в
foo
присваивает новое значение переменной x
, компилятор решает, что это локальная переменная. Следовательно, когда более ранний print
пытается напечатать неинициализированную переменную, возникает ошибка.🔗 Python tricks
Какие правила для глобальных и локальных переменных в Python
В Python, переменные, на которые только ссылаются внутри функции, считаются глобальными. Если переменной присваивается новое значение где-либо в теле функции, считается, что она локальная, и, если вам нужно, то нужно явно указывать её глобальной.
🔗 Python tricks
В Python, переменные, на которые только ссылаются внутри функции, считаются глобальными. Если переменной присваивается новое значение где-либо в теле функции, считается, что она локальная, и, если вам нужно, то нужно явно указывать её глобальной.
🔗 Python tricks
Функция zlib.compress()
Функция
Zlib — это библиотека, которая предоставляет алгоритмы сжатия данных. С её помощью можно уменьшить объем данных, что полезно, например, при передаче данных по сети или сохранении данных на диске, чтобы уменьшить потребление места.
Функция
🔗 Python tricks
Функция
zlib.compress()
является частью стандартной библиотеки и предназначена для сжатия данных с использованием библиотеки сжатия данных Zlib.Zlib — это библиотека, которая предоставляет алгоритмы сжатия данных. С её помощью можно уменьшить объем данных, что полезно, например, при передаче данных по сети или сохранении данных на диске, чтобы уменьшить потребление места.
Функция
zlib.compress()
принимает один аргумент — последовательность байтов (например, строку или байтовый объект) и возвращает сжатую версию этой последовательности.🔗 Python tricks
Py-spy
Py-spy — это инструмент для профилирования производительности Python-приложений. Он предоставляет информацию о том, как Python-приложение использует центральный процессор (CPU) и может помочь вам выявить узкие места в вашем коде, которые могут приводить к высокому использованию CPU.
Py-spy можно использовать из командной строки, чтобы наблюдать за работой запущенных Python-процессов. Он предоставляет информацию о потреблении CPU, вызовах функций, стеке вызовов и других характеристиках производительности. Вы можете использовать py-spy для оптимизации вашего Python-кода и выявления проблем с производительностью.
🔗 Python tricks
Py-spy — это инструмент для профилирования производительности Python-приложений. Он предоставляет информацию о том, как Python-приложение использует центральный процессор (CPU) и может помочь вам выявить узкие места в вашем коде, которые могут приводить к высокому использованию CPU.
Py-spy можно использовать из командной строки, чтобы наблюдать за работой запущенных Python-процессов. Он предоставляет информацию о потреблении CPU, вызовах функций, стеке вызовов и других характеристиках производительности. Вы можете использовать py-spy для оптимизации вашего Python-кода и выявления проблем с производительностью.
🔗 Python tricks
Почему анонимные функции (lambda), определенные в цикле с разными значениями, возвращают один и тот же результат
Это случается, поскольку
В конце цикла,
🔗 Python tricks
Это случается, поскольку
x
не является локальной для lambda
, а определена во внешней области видимости, и получается тогда, когда она вызывается - а не когда определяется.В конце цикла,
x=4
, поэтому все функции возвращают 4**2
, то есть 16
. Это можно также проверить, изменив значение x
и посмотрев на результат🔗 Python tricks
Как организовать совместный доступ к глобальным переменным для нескольких модулей
Канонический способ организовать подобный доступ - это создать отдельный модуль (часто называемый config или cfg). Просто добавьте
🔗 Python tricks
Канонический способ организовать подобный доступ - это создать отдельный модуль (часто называемый config или cfg). Просто добавьте
import config
в каждый модуль приложения. При этом модуль становится доступен через глобальное имя. Поскольку существует только один экземпляр модуля, любые изменения, произведённые в модуле отражаются везде.🔗 Python tricks
Annoy
В этом примере мы создаем индекс
Результат работы кода - список из 1000 индексов элементов, которые являются ближайшими соседями для элемента с индексом 0.
🔗 Python tricks
Annoy
(Approximate Nearest Neighbors Oh Yeah) — это библиотека, которая используется для поиска точек в пространстве, близких к заданной точке запроса. Она также создает большие файловые структуры данных только для чтения, которые отображаются в память, чтобы многие процессы могли использовать одни и те же данные.В этом примере мы создаем индекс
Annoy
с длиной вектора элемента f
и используем расстояние angular
. Затем мы добавляем 1000 элементов со случайными значениями в индекс и строим его с использованием 10 деревьев. После этого мы сохраняем индекс в файл test.ann
. Затем мы загружаем индекс из файла и выполняем поиск 1000 ближайших соседей для элемента с индексом 0.Результат работы кода - список из 1000 индексов элементов, которые являются ближайшими соседями для элемента с индексом 0.
🔗 Python tricks
Emot
Emot (Emotional Analysis for Text) — это библиотека для анализа эмодзи на Python. Она может быть полезна для обработки данных текста, чтобы удалить эмодзи и других задач, связанных с анализом эмотиконами.
Чтобы использовать библиотеку Emot, вам сначала нужно установить её с помощью pip:
Emot (Emotional Analysis for Text) — это библиотека для анализа эмодзи на Python. Она может быть полезна для обработки данных текста, чтобы удалить эмодзи и других задач, связанных с анализом эмотиконами.
Чтобы использовать библиотеку Emot, вам сначала нужно установить её с помощью pip:
pip install emot
🔗 Python tricksДинамическая загрузка модуля
Динамическая загрузка модуля в Python — это процесс импорта модуля во время выполнения программы, в отличие от статического импорта, который выполняется на этапе компиляции. Это может быть полезно, если вы хотите загружать модули в зависимости от условий или пользовательского ввода, чтобы сделать вашу программу более гибкой.
Обратите внимание, что для динамической загрузки модуля он должен быть доступен в пути поиска модулей Python, например, находиться в том же каталоге, где выполняется ваш скрипт, или в путях, указанных в переменной
Также обратите внимание, что динамическая загрузка модулей может быть мощным инструментом, но она также может привести к проблемам безопасности, если модули загружаются из ненадежных источников. Убедитесь, что вы проверяете и фильтруете ввод, который вы используете для определения имени модуля, чтобы избежать потенциальных уязвимостей.
🔗 Python tricks
Динамическая загрузка модуля в Python — это процесс импорта модуля во время выполнения программы, в отличие от статического импорта, который выполняется на этапе компиляции. Это может быть полезно, если вы хотите загружать модули в зависимости от условий или пользовательского ввода, чтобы сделать вашу программу более гибкой.
Обратите внимание, что для динамической загрузки модуля он должен быть доступен в пути поиска модулей Python, например, находиться в том же каталоге, где выполняется ваш скрипт, или в путях, указанных в переменной
sys.path
.Также обратите внимание, что динамическая загрузка модулей может быть мощным инструментом, но она также может привести к проблемам безопасности, если модули загружаются из ненадежных источников. Убедитесь, что вы проверяете и фильтруете ввод, который вы используете для определения имени модуля, чтобы избежать потенциальных уязвимостей.
🔗 Python tricks
Theano
Theano — это библиотека для глубокого обучения и численных вычислений, написанная на языке Python. Theano предоставляет инструменты для оптимизации и вычисления матричных операций, что делает его полезным инструментом для работы с нейронными сетями и другими вычислительными задачами. Однако стоит отметить, что Theano больше не активно развивается и поддерживается, и многие из его функциональных возможностей были интегрированы в другие библиотеки глубокого обучения, такие как TensorFlow и PyTorch.
🔗 Python tricks
Theano — это библиотека для глубокого обучения и численных вычислений, написанная на языке Python. Theano предоставляет инструменты для оптимизации и вычисления матричных операций, что делает его полезным инструментом для работы с нейронными сетями и другими вычислительными задачами. Однако стоит отметить, что Theano больше не активно развивается и поддерживается, и многие из его функциональных возможностей были интегрированы в другие библиотеки глубокого обучения, такие как TensorFlow и PyTorch.
🔗 Python tricks
LightGBM
LightGBM (Light Gradient Boosting Machine) — это библиотека для машинного обучения, которая специализируется на градиентном бустинге и предоставляет выдающуюся производительность и эффективность. Она была разработана Microsoft и предназначена для решения задач классификации, регрессии и ранжирования. LightGBM быстро стала популярной в машинном обучении благодаря скорости, эффективности, поддержки множества задач, а главное градиентному бустингу.
Использование LightGBM в Python, как описано в предыдущем ответе, позволяет легко интегрировать эту библиотеку в ваши проекты машинного обучения и проводить высококачественный анализ данных и прогнозирование.
🔗 Python tricks
LightGBM (Light Gradient Boosting Machine) — это библиотека для машинного обучения, которая специализируется на градиентном бустинге и предоставляет выдающуюся производительность и эффективность. Она была разработана Microsoft и предназначена для решения задач классификации, регрессии и ранжирования. LightGBM быстро стала популярной в машинном обучении благодаря скорости, эффективности, поддержки множества задач, а главное градиентному бустингу.
Использование LightGBM в Python, как описано в предыдущем ответе, позволяет легко интегрировать эту библиотеку в ваши проекты машинного обучения и проводить высококачественный анализ данных и прогнозирование.
🔗 Python tricks
Как правильнее использовать импортирование
В общих случаях не используйте
Импортируйте модули в начале файла. Это отвечает на вопрос, какие модули требует Ваш код и находится ли имя модуля в области видимости. Запись по одному импорту на строку упрощает добавление и удаление операторов импорта, но множественный импорт будет занимать меньше места на экране.
🔗 Python tricks
В общих случаях не используйте
from modulename import *
. Это засоряет пространство имён того, кто импортирует. Некоторые люди избегают этой идиомы даже для тех немногих модулей, которые были спроектированны, чтобы так импортироваться. Это такие модули как Tkinter и threading.Импортируйте модули в начале файла. Это отвечает на вопрос, какие модули требует Ваш код и находится ли имя модуля в области видимости. Запись по одному импорту на строку упрощает добавление и удаление операторов импорта, но множественный импорт будет занимать меньше места на экране.
🔗 Python tricks
Почему значения по умолчанию разделяются между объектами
Часто ожидается, что вызов функции создаёт новые объекты для значений по умолчанию. Но это не так. Значения по умолчанию создаются лишь однажды, когда функция определяется. Если этот объект изменяется, как словарь в нашем примере, последующие вызовы функции будут использовать изменённый объект.
По определению, неизменяемые объекты (числа, строки, кортежи и None), безопасны при изменении. Изменение изменяемых объектов, таких как словари, списки, и экземпляры пользовательских классов может привести к неожиданным последствиям.
🔗 Python tricks
Часто ожидается, что вызов функции создаёт новые объекты для значений по умолчанию. Но это не так. Значения по умолчанию создаются лишь однажды, когда функция определяется. Если этот объект изменяется, как словарь в нашем примере, последующие вызовы функции будут использовать изменённый объект.
По определению, неизменяемые объекты (числа, строки, кортежи и None), безопасны при изменении. Изменение изменяемых объектов, таких как словари, списки, и экземпляры пользовательских классов может привести к неожиданным последствиям.
🔗 Python tricks
Как передать опциональные или именованные параметры из одной функции в другую
Получить такие параметры можно с помощью спецификаторов * и в списке аргументов функции; они возвращают кортеж позиционных аргументов и словарь именованых параметров. После этого Вы можете передать их в другую функцию, используя в её вызове * и
🔗 Python tricks
Получить такие параметры можно с помощью спецификаторов * и в списке аргументов функции; они возвращают кортеж позиционных аргументов и словарь именованых параметров. После этого Вы можете передать их в другую функцию, используя в её вызове * и
🔗 Python tricks
divmod
Метод divmod() принимает два числа в качестве аргументов и возвращает их частное и остаток в виде кортежа. В качестве вводных чисел могут быть как целые числа, так и с плавающей запятой. Если же использовать не числовые значения, выдается ошибка TypeError.
🔗 Python tricks
Метод divmod() принимает два числа в качестве аргументов и возвращает их частное и остаток в виде кортежа. В качестве вводных чисел могут быть как целые числа, так и с плавающей запятой. Если же использовать не числовые значения, выдается ошибка TypeError.
🔗 Python tricks