Вычисление факториала
Модуль
Модуль
math
обеспечивает простой способ вычисления факториала любого положительного целого числа. В нем есть предопределенный метод factorial()
, который принимает целое число в качестве аргумента и возвращает факториал числа.Создание словаря из набора ключей
Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions).
Однако класс
Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions).
Однако класс
dict
имеет удобный метод fromkeys
, который был создан специально для таких случаев.Проверка возможности вызова
Поговорим о возможности вызова того или иного объекта. Для проверки возможности вызова воспользуемся встроенной функцией
Поговорим о возможности вызова того или иного объекта. Для проверки возможности вызова воспользуемся встроенной функцией
callable
. Она возвращает True
или False
в зависимости от объекта. Под вызовом подразумеваются ( ).Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
Но с помощью модуля
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
RecursionError
во время создания рекурсивных алгоритмов. Но с помощью модуля
sys
можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
Создаем список в 1 строку
Одна из наиболее базовых задач в питоне - создание списков на основе уже имеющихся массивов данных, при этом стандартный метод занесения достаточно громоздок.
Специально для сокращения количества строк и приданию Вашему коду лаконичного вида в питоне есть возможность создать список в 1 строку по принципу
Одна из наиболее базовых задач в питоне - создание списков на основе уже имеющихся массивов данных, при этом стандартный метод занесения достаточно громоздок.
Специально для сокращения количества строк и приданию Вашему коду лаконичного вида в питоне есть возможность создать список в 1 строку по принципу
[объект for i in итерируемый объект if условие]
Необходимо собрать и вывести все уникальные слова из строки рекламного текста. Какой из перечисленных типов данных Python подходит лучше всего?
Anonymous Quiz
18%
кортеж (tuple)
22%
список (list)
48%
множество (set)
13%
словарь (dict)
True или не True, вот в чем вопрос
В питоне True и False - объекты класса bool, при этом к этому типу можно преобразовать объект любого класса так, что нулевой(пустой объект) равен False, а что угодно другое преобразуется в True
Пример для int:
Этот факт дает нам возможность составлять условия самыми разными способами, примеры основных выражений приведены ниже
В питоне True и False - объекты класса bool, при этом к этому типу можно преобразовать объект любого класса так, что нулевой(пустой объект) равен False, а что угодно другое преобразуется в True
Пример для int:
bool(1) -> True
bool(-1) -> True
bool(0) -> False
Пример на списках:
bool(['Smthng']) -> True
bool([]) -> False
Этот факт дает нам возможность составлять условия самыми разными способами, примеры основных выражений приведены ниже
Как вывести список методов и атрибутов объекта 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. На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.