Oleg Alexandrov

Python

Назад к перечню шпаргалок

Decorator:

Descriptor:

PyTest

Keyword Описание
False экземпляр класса bool
class ключевое слово для определения класса
from предложение для импорта класса из модуля
or логический оператор «или»
None экземпляр объекта NoneType
continue используется во вложенном цикле for и while. Он продолжается со следующего цикла ближайшей замкнутой петли
global позволяет нам изменять переменные вне текущей области видимости
pass используется для того, чтобы ничего не делать. Это полезно, когда нам требуется какой-то оператор, но мы не хотим выполнять какой-либо код
True экземпляр класса boo`
def используемое для определения функции
if используется для записи блока условного кода
raise используется для создания исключений в программе
and логический оператор «и»
del используется для удаления таких объектов, как переменные, список, объекты и т. д.
import используется для импорта модулей и классов в нашу программу
return используется в функции для возврата значения
as Псевдоним, используется для предоставления имени для импорта, кроме оператора with
elif используется вместе с оператором if для операции «else if»
in используется, чтобы проверить членство
try используется для написания кода обработки исключений
assert позволяет нам вставлять отладочные утверждения в программу. Если утверждение верно, программа продолжает работать. В противном случае выбрасывается AssertionError
else используется с условиями if и elif. Он используется для выполнения операторов, когда ни одно из предыдущих условий не является истинным
is используется для проверки того, ссылаются ли две переменные на один и тот же объект. Это то же самое, что использовать оператор ==
while используется для выполнения блока операторов до тех пор, пока выражение не станет истинным
async используется в теле функции couroutine. Он используется с модулем ввода-вывода и await
await используется для асинхронной обработки
lambda используется для создания лямбда-выражений
with используется, чтобы обернуть выполнения блока с методами, определенными в контексте менеджера. Объект должен реализовывать функции __enter__() и __exit__()
except используется для перехвата исключений, брошенных в блоке try, и их обработки
finally используется с операторами try-except. Код в блоке finally всегда выполняется. Он в основном используется для закрытия ресурсов
nonlocal используется для доступа к переменным, определенным вне области действия блока. Это всегда используется во вложенных функциях для доступа к переменным, определенным снаружи
yield замена ключевого слова return. Это используется для возврата значений из функции одно за другим
break используется с вложенными циклами for и while. Он останавливает выполнение текущего цикла и передает управление в начало цикла
for используется для перебора элементов последовательности или итеративного объекта
not логический оператор «не»
list представляет тип данных, который хранит набор или последовательность элементов
tuple представляет последовательность элементов, которая во многом похожа на список за тем исключением, что кортеж является неизменяемым (immutable) типом
range представляют неизменяемый последовательный набор чисел
dictionary хранит коллекцию элементов, где каждый элемент имеет уникальный ключ и ассоциированное с ним некоторое значение
set представляют еще один вид набора, который хранит только уникальные элементы
match позволяет сопоставить выражение с некоторым шаблоном

Соглашения по именованию сущностей

Тип Общедоступный Внутренний
Пакеты (директории) lower_with_under
Модули (файлы) lower_with_under.py
Классы CapWords
Функции и методы lower_with_under() _lower_with_under()
Константы ALL_CAPS_UNDER _ALL_CAPS_UNDER

Функции

# Built-in Functions Описание
A abs(x) Возвращает абсолютное значение числа.
  aiter(async_iterable) Возвращает асинхронный итератор для асинхронной итерации.
  all(iterable) Возвращает, True если все элементы итерируемого значения истинны.
  any(iterable) Возвращает, True если какой-либо элемент итерируемого значения имеет значение True.
  anext(async_iterator[, default]) Когда ожидает, возвращает следующий элемент из заданного асинхронного итератора.
  ascii(object) Как repr(), возвращает строку, содержащую печатное представление объекта, но экранируют символы, отличные от ASCII.
B bin()  
  bool()  
  breakpoint()  
  bytearray()  
  bytes()  
C callable()  
  chr()  
  classmethod()  
  compile()  
  complex()  
D delattr()  
  dict()  
  dir()  
  divmod()  
E enumerate()  
  eval()  
  exec()  
F filter()  
  float()  
  format()  
  frozenset()  
G getattr()  
  globals()  
H hasattr()  
  hash()  
  help()  
  hex()  
I id()  
  input()  
  int()  
  isinstance()  
  issubclass()  
  iter()  
L len()  
  list()  
  locals()  
M map()  
  max()  
  memoryview()  
  min()  
N next()  
O object()  
  oct()  
  open()  
  ord()  
P pow()  
  print()  
  property()  
R range()  
  repr()  
  reversed()  
  round()  
S set()  
  setattr()  
  slice()  
  sorted()  
  staticmethod()  
  str()  
  sum()  
  super()  
T tuple()  
  type()  
V vars()  
Z zip()  
_ __import__()  

Некоторые операции над последовательностями:

Операции Описание
s[0] обращение к элементу
s[-1] обращение к элементу с конца последовательности
s[1:3] срез начиная со смещения 1 и до 2 (не 3)
s[:] скопировать все содержимое (не путать с a=s)
s*8 повторение
s+’xyz’ конкатенация

Примеры часто используемые срезов:

Консольный ввод и вывод

Вывод на консоль

print("Hello World")
print("Hello World", end=" and ")
print("Hello METANIT.COM", end=" and ")
print("Hello Python")

# Hello World and Hello METANIT.COM and Hello Python

Консольный ввод

name = input("Your name: ")         # Your name: Tom
age = input("Your age: ")           # Your age: 37
print(f"Name: {name}  Age: {age}")  # Name: Tom  Age: 37

Арифметические операции с числами

Сложение двух чисел +:

print(6 + 2)  # 8

Вычитание двух чисел -:

print(6 - 2)  # 4

Умножение двух чисел *:

print(6 * 2)  # 12

Деление двух чисел /:

print(6 / 2)  # 3.0

Целочисленное деление двух чисел //:

print(7 / 2)   # 3.5
print(7 // 2)  # 3

Возведение в степень **:

print(6 ** 2)  # Возводим число 6 в степень 2. Результат - 36

Получение остатка от деления %:

В данном случае ближайшее число к 7, которое делится на 2 без остатка, это 6. Поэтому остаток от деления равен 7 - 6 = 1.

print(7 % 2)  # Получение остатка от деления числа 7 на 2. Результат - 1

При последовательном использовании нескольких арифметических операций их выполнение производится в соответствии с приоритетом:

number = 3 + 4 * 5 ** 2 + 7
print(number)  # 110

Здесь в начале выполняется возведение в степень (5 ** 2) как операция с большим приоритетом, далее результат умножается на 4 (25 * 4), затем происходит сложение (3 + 100) и далее опять идет сложение (103 + 7).

Арифметические операции с присвоением

Операции Описание
+= Присвоение результата сложения
-= Присвоение результата вычитания
*= Присвоение результата умножения
/= Присвоение результата от деления
//= Присвоение результата целочисленного деления
**= Присвоение степени числа
%= Присвоение остатка от деления

Поразрядные операции с числами

Двоичное представление чисел

number = 5                      # в двоичной форме 101
print(f"number = {number:0b}")  # number = 101
number = 0b101                  # определяем число в двоичной форме
print(f"number = {number:0b}")  # number = 101
print(f"number = {number}")     # number = 5 - в десятичной системе

number1 = 1     # в двоичной системе 0b1
number2 = 2     # в двоичной системе 0b10
number3 = 3     # в двоичной системе 0b11
number4 = 4     # в двоичной системе 0b100
number5 = 5     # в двоичной системе 0b101
number6 = 6     # в двоичной системе 0b110

Логические операции

Логическое умножение &:

x1 = 2                  # 010
y1 = 5                  # 101
z1 = x1 & y1            # 000
print(f"z1 = {z1}")     # z1 = 0

x2 = 4                  # 100
y2 = 5                  # 101
z2 = x2 & y2            # 100
print(f"z2 = {z2}")     # z2 = 4
print(f"z2 = {z2:0b}")  # z2 = 100

Логическое сложение |:

x1 = 2                  # 010
y1 = 5                  # 101
z1 = x1|y1              # 111
print(f"z1 = {z1}")     # z1 = 7
print(f"z1 = {z1:0b}")  # z1 = 111

x2 = 4                  # 100
y2 = 5                  # 101
z2 = x2 | y2            # 101
print(f"z2 = {z2}")     # z2 = 5
print(f"z2 = {z2:0b}")  # z2 = 101

Логическое исключающее ИЛИ ^:

x = 9                  # 1001
y = 5                  # 0101
z = x ^ y              # 1100
print(f"z = {z}")      # z = 12
print(f"z = {z:0b}")   # z = 1100

Нередко данную операцию применяют для простого шифрования:

x = 45                   # Значение, которое надо зашифровать - в двоичной форме 101101
key = 102                # Пусть это будет ключ - в двоичной форме 1100110

encrypt = x ^ key        # Результатом будет число 1001011 или 75
print(f"Зашифрованное число: {encrypt}")

decrypt = encrypt ^ key  # Результатом будет исходное число 45
print(f"Расшифрованное число: {decrypt}")

Также можно применять эту операцию для обмена значений чисел:

x = 9               #  1001
y = 5               #  0101
x = x ^ y
y = x ^ y
x = x ^ y 

print(f"x = {x}")   # x = 5
print(f"y = {y}")   # y = 9

Инверсия ~:

Выражение ~x фактически аналогично -(x+1):

x = 5
y = ~x
print(f"y: {y}")  # -6

Операции сдвига

Операции Описание
x<<y сдвигает число x влево на y разрядов. Например, 4<<1 сдвигает число 4 (которое в двоичном представлении 100) на один разряд влево, то есть в итоге получается 1000 или число 8 в десятичном представлении
x>>y сдвигает число x вправо на y разрядов. Например, 16>>1 сдвигает число 16 (которое в двоичном представлении 10000) на один разряд вправо, то есть в итоге получается 1000 или число 8 в десятичном представлении
a = 16      # в двоичной форме 10000
b = 2
c = a << b  # Сдвиг числа 10000 влево на 2 разряда, равно 1000000 или 64 в десятичной системе
print(c)    # 64

d = a >> b  # Сдвиг числа  10000  вправо на 2 разряда, равно 100 или 4 в десятичной системе
print(d)    # 4

При этом числа, которые участвую в операциях, необязательно должны быть кратны 2:

a = 22      # в двоичной форме 10110
b = 2
c = a << b  # Сдвиг числа 10110 влево на 2 разряда, равно 1011000 или 88 в десятичной системе
print(c)    # 88

d = a >> b  # Сдвиг числа 10110 вправо на 2 разряда, равно 101 или 5 в десятичной системе
print(d)    # 5

Условные выражения

Операции сравнения

Операции Описание
== Возвращает True, если оба операнда равны. Иначе возвращает False
!= Возвращает True, если оба операнда НЕ равны. Иначе возвращает False
> Возвращает True, если первый операнд больше второго
< Возвращает True, если первый операнд меньше второго
>= Возвращает True, если первый операнд больше или равен второму
<= Возвращает True, если первый операнд меньше или равен второму
a = 5
b = 6
result = 5 == 6  # сохраняем результат операции в переменную
print(result)    # False - 5 не равно 6
print(a != b)    # True
print(a > b)     # False - 5 меньше 6
print(a < b)     # True

bool1 = True
bool2 = False
print(bool1 == bool2)  # False - bool1 не равно bool2

Логические операции

Логическое умножение and:

age = 22
weight = 58
isMarried = False
result = age > 21 and weight == 58 and isMarried
print(result)  # False, так как isMarried = False

Логическое сложение or:

age = 22
isMarried = False
result = age > 21 or isMarried
print(result)  # True, так как выражение age > 21 равно True

Логическое отрицание not:

age = 22
isMarried = False
print(not age > 21)   # False
print(not isMarried)  # True

Оператор in

Оператор in возвращает True если в некотором наборе значений есть определенное значение:

message = "hello world!"
hello = "hello"
print(hello in message)  # True - подстрока hello есть в строке "hello world!"

gold = "gold"
print(gold in message)   # False - подстроки "gold" нет в строке "hello world!"

Если нам надо наоборот проверить, нет ли в наборе значений какого-либо значения, то мы можем использовать модификацию оператора not in:

message = "hello world!"
hello = "hello"
print(hello not in message)  # False

gold = "gold"
print(gold not in message)   # True

Formatter

loss: float = 0.034_489_701
print(f"{loss = :.3f}")  # loss = 0.034
z = 5
print(f"z = {z:0b}")  # z = 101

https://okpython.net/

Назад к перечню шпаргалок