Как вывести список методов и атрибутов объекта x?
Anonymous Quiz
28%
help(x)
27%
info(x)
4%
?x
41%
dir(x)
Продолжим об условиях в Python
Как мы помним, любой исход проверки программой воспринимается как тип
Но стоит так же знать, что при любой арифметической операции с ним он преобразуется в формат
Это позволяет нам разбить выражение на части и обрабатывать объект по разному в зависимости от реализованного условия.
Для примера сегодня четные элементы вернём без преобразования, а нечётные увеличим на 1
P.S. при реализации таких арифметических выражений задвоения не происходит, так как лишь одно условие даёт результат
Как мы помним, любой исход проверки программой воспринимается как тип
bool
.Но стоит так же знать, что при любой арифметической операции с ним он преобразуется в формат
int
по принципу:True -> 1
False -> 0
Это позволяет нам разбить выражение на части и обрабатывать объект по разному в зависимости от реализованного условия.
Для примера сегодня четные элементы вернём без преобразования, а нечётные увеличим на 1
P.S. при реализации таких арифметических выражений задвоения не происходит, так как лишь одно условие даёт результат
True
, в случае использования более сложных конструкций рекомендуется следовать правилу, когда два условия одновременно не реализуютсяВыполняем код по расписанию
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция
attime
будет выполняться каждую минуту с 6 утра до 10 вечера в рабочие дни недели.Очищаем строки
Чаще всего обработка входных данных сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с помощью регулярного выражения.
Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. С помощью словаря со значениями для замены символов и метода
В примере видим, как символы переноса строки
Чаще всего обработка входных данных сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с помощью регулярного выражения.
Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. С помощью словаря со значениями для замены символов и метода
translate
получается крайне лаконичный код.В примере видим, как символы переноса строки
"\n"
и табуляции "\t"
заменяются на обычные пробелы, а символ "\r"
удаляется из строки полностью.Функция reduce
Модуль
Таким образом, в примере выше
Модуль
functools
позволяет хорошо раскрыть функциональные возможности Python. Например, в functools
есть интересная функция reduce
, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce
умножает 1 на 2, затем результат этого умножения на 3 и так далее.Pyperclip
Модуль pyperclip имеет функции
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер pip.
Модуль pyperclip имеет функции
copy()
и paste()
, которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда. Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер pip.
Символы Юникода
Добавлять юникод-символы в строковые литералы можно не только с помощью их номеров, но и по их названиям.
Более того, такая запись символов юникода совместима и с f-строками, а это очень удобно.
Добавлять юникод-символы в строковые литералы можно не только с помощью их номеров, но и по их названиям.
Более того, такая запись символов юникода совместима и с f-строками, а это очень удобно.
Как можно более кратко представить эту запись?
Anonymous Quiz
8%
A = Y if Z else Y
75%
A = Y if X else Z
6%
A = X if Z else Y
12%
A = X if Y else Z
Комплексные числа в Python
Кроме уже известных вам типов int, float и подобных, в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде
Это число можно превратить в строку с помощью str, посчитать его модуль с помощью abs, а также для доступа к его реальной или мнимой части можно воспользоваться функциями
Хотя данный тип и является встроенным, для полноценной работы с комплексными операциями понадобится модуль cmath.
Кроме уже известных вам типов int, float и подобных, в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде
x + iy
. Python преобразует реальные числа x
и y
в комплексное с помощью функции complex(x,y)
. Это число можно превратить в строку с помощью str, посчитать его модуль с помощью abs, а также для доступа к его реальной или мнимой части можно воспользоваться функциями
real()
и imag()
. Хотя данный тип и является встроенным, для полноценной работы с комплексными операциями понадобится модуль cmath.
Дизассемблирование
Встроенный модуль
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Встроенный модуль
dis
позволяет декомпилировать написанную вами программу в байт-код Python. На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Какая из строчек кода выведет структуру, отсортированную в порядке увеличения возрастов животных?
Anonymous Quiz
45%
sorted(animals, key='age')
15%
Ни один вариант не является верным, два словаря нельзя сравнивать друг с другом.
35%
sorted(animals, key=lambda animal: animal['age'])
5%
sorted(animals)
Метод popitem()
Метод словаря popitem() удаляет последнюю вставленную пару «ключ-значение» указанного ключа и возвращает эту пару.
Метод словаря popitem() удаляет последнюю вставленную пару «ключ-значение» указанного ключа и возвращает эту пару.
Какая из перечисленных инструкций выполнится быстрее всего, если n = 10**6?
Anonymous Quiz
18%
a = list(i for i in range(n))
29%
a = [i for i in range(n)]
38%
a = (i for i in range(n))
15%
a = {i for i in range(n)}
geopy
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Программистам может быть сложно ориентироваться в географии. Однако модуль geopy всё упрощает:
$ pip install geopy
Он работает путём абстрагирования API разных сервисов геокодирования. Этот модуль даёт возможность узнать полный адрес места, его долготу и широту и даже высоту.
Также в нём есть полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Кэширование функций
Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор
Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.
Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор
lru_cache
, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции. Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.
Библиотека sh
Любой программист должен знать bash - язык для взаимодействия с линуксом. Основы знают все, ведь по-другому не запустить программу на сервере или не установить нужную библиотеку. Данный модуль позволяет использовать bash прямо в Python коде.
Библиотеку требуется установить:
Если вдруг вы забыли как написать что-то на Python, то всегда можете использовать bash.
Любой программист должен знать bash - язык для взаимодействия с линуксом. Основы знают все, ведь по-другому не запустить программу на сервере или не установить нужную библиотеку. Данный модуль позволяет использовать bash прямо в Python коде.
Библиотеку требуется установить:
pip install sh
Если вдруг вы забыли как написать что-то на Python, то всегда можете использовать bash.
Not a Number
В модуле math есть особый объект, который называется NaN (Not a Number).
Такие объекты не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.
В модуле math есть особый объект, который называется NaN (Not a Number).
Такие объекты не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.