TGViewer
Channel Public Channel
Python tricks | Хитрости Питона

Python tricks | Хитрости Питона

@python_tricks

Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Subscribers
5.09K
Photos
2.2K
Videos
26
Links
2.5K

Showing posts older than #2097 · Back to latest

Older Posts 20 shown
Post #2095 643
Работа с enumerate()

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

Для подобных задач можно использовать функцию enumerate(), задающую счетчик при обходе итератора в цикле.

🔗 Python tricks
Post #2094 658
Set.discard

В приведенном выше примере метод discard() используется для удаления элемента из множества. В результирующем множестве нет элемента 3, поскольку метод discard() удалил его. Если элементов нет в исходном множестве, ничего не меняется.

🔗 Python tricks
Post #2093 710
Библиотека cvxpy

cvxpy — эта библиотека позволяет описывать оптимизационные задачи в высокоуровневом виде и эффективно решать их с помощью численных методов.

Основные возможности cvxpy:
— Удобный синтаксис для задания целевой функции и ограничений в виде выражений Python.
— Поддержка разных типов переменных: вещественных, целочисленных, булевых.
— Возможность задания неравенств и равенств как ограничений.
— Встроенные функции для задания норм, статистических величин и других полезных выражений.
— Автоматический выбор подходящего численного решателя на основе задачи.
— Интеграция с NumPy, SciPy и другими популярными библиотеками.

cvxyp часто используется для решения задач оптимизации в машинном обучении, обработке сигналов, финансовом моделировании и других областях.
🔗 Python tricks
Post #2092 719
eval()

Eval() — это встроенная функция, которая позволяет выполнять строку кода как выражение и возвращать результат.

Eval() принимает строку в качестве аргумента и выполняет ее как код, также можно передать переменные и выражения в строку и eval() вычислит их.

Eval() также может использоваться для динамического выполнения и компиляции кода. Однако, эту функцию опасно использовать с вводом пользователя, т. к. это может привести к выполнению произвольного кода.
🔗 Python tricks
Post #2091 721
Генерация строк

Для создания строки вместо синтаксиса выражений-генераторов используется метод строки .join(), которому в качестве аргументов можно передать выражение генератор.
Обратите внимание: элементы коллекции для объединения в строку должны быть строками!
🔗 Python tricks
Post #2090 714
Создание коллекций из выражения-генератора (ч.2)

Написание выражения-генератора сразу внутри скобок вызываемой функции создания коллекции.
🔗 Python tricks
Post #2089 748
Создание коллекций из выражения-генератора (ч.1)

Передачей готового выражения-генератора присвоенного переменной в функцию создания коллекции.
🔗 Python tricks
Post #2088 773
Поверхностное копирование

Копирование объектов может быть выполнено как «поверхностное» (shallow) копирование или «глубокое» (deep) копирование. Различия между ними заключаются в том, как обрабатываются вложенные объекты.

Глубокое копирование мы уже рассматривали в посте выше, поэтому этот пост мы посвятим Поверхностному копированию.

При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты.

Заметьте, что изменения во вложенных объектах будут видны как в оригинале, так и в его поверхностной копии.

🔗 Python tricks
Post #2087 704
Метод str.replace()

Метод str.replace() в Python используется для замены подстроки в строке новой подстрокой. Вот базовый синтаксис метода:

new_string = old_string.replace(old_substring, new_substring)

где:
old_string — исходная строка, в которой вы хотите выполнить замену.
old_substring — подстрока, которую вы хотите заменить.
new_substring — новая подстрока, которой вы хотите заменить старую подстроку.

🔗 Python tricks
Post #2086 700
Особенности выражений-генераторов (ч.2)

Обратите внимание, что после прохождения по выражению-генератору оно остается пустым!

Выражение-генератор может быть бесконечным.

К выражению-генератору не применимы срезы!

Из генератора легко получать нужную коллекцию. Это подробно рассматривается в следующей главе.
🔗 Python tricks
Post #2085 705
Особенности выражений-генераторов (ч.1)

Генаратор нельзя писать без скобок — это синтаксическая ошибка.

При передаче в функцию дополнительные скобки необязательны.

Нельзя получить длину функцией len()

Нельзя распечатать элементы функцией print()
🔗 Python tricks
Post #2084 688
Ветвление выражения

Условия ветвления пишутся не после, а перед итератором.

В данном случае if-else это не фильтр перед выполнением выражения, а ветвление самого выражения, то есть переменная уже прошла фильтр, но в зависимости от условия может быть обработана по-разному!
🔗 Python tricks
Post #2083 710
Метод str.replace()

Метод str.replace() в Python используется для замены подстроки в строке новой подстрокой. Вот базовый синтаксис метода:

new_string = old_string.replace(old_substring, new_substring)

где:
old_string — исходная строка, в которой вы хотите выполнить замену.
old_substring — подстрока, которую вы хотите заменить.
new_substring — новая подстрока, которой вы хотите заменить старую подстроку.

🔗 Python tricks
Post #2082 742
PsychoPy

PsychoPy — это программное обеспечение для создания экспериментов в области психологии, нейронауки и экспериментальной психиатрии с использованием языка программирования Python. Он предоставляет инструменты для создания различных видов стимулов, управления временем, сбора данных и анализа результатов.

В примере на картинке мы создаем окно, текстовый стимул, отображаем его, ждем 2 секунды и затем закрываем окно. PsychoPy предоставляет богатый набор функций для создания более сложных экспериментов, таких как представление изображений, воспроизведение звуков, сбор данных о времени реакции и многое другое.

🔗 Python tricks
Post #2081 732
Выражения-генераторы

Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в том, что они выдают элемент по-одному, не загружая в память сразу всю коллекцию.

🔗 Python tricks
Post #2080 733
Решение с помощью функций

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

Можно применять и более старые функциональные подходы для решения тех же задач, комбинируя map(), lambda и filter().

🔗 Python tricks
Post #2079 747
string.title

Метод title() возвращает версию строки, где первый символ каждого слова пишется с заглавной буквы (если первый символ — буква). Обрати внимание, данный метод также делает первую букву после апострофа заглавной.

🔗 Python tricks
Post #2078 749
pprint

pprint (pretty-print) предоставляет функционал для красивого вывода структур данных в удобочитаемой форме. Он используется для отображения сложных объектов, таких как словари и списки, с отступами и переносами строк для лучшей читаемости.

🔗 Python tricks
Post #2077 772
Green threads

Зелёные потоки (green threads) — это потоки выполнения, управление которыми вместо операционной системы производит виртуальная машина (ВМ). Green threads эмулируют многопоточную среду, не полагаясь на возможности ОС по реализации легковесных потоков. Управление ими происходит в пользовательском пространстве, а не пространстве ядра, что позволяет им работать в условиях отсутствия поддержки встроенных потоков.

🔗 Python tricks
Post #2076 741
Улучшаем читаемость

Не забываем, что в Python синтаксис позволяет использовать переносы строк внутри скобок. Используя эту возможность, можно сделать синтаксис генераторов выражений более легким для чтения.
🔗 Python tricks
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →