__and__
__or__
__xor__
__lshift__
__rshift__
__invert__
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
loss: float = 0.034_489_701
print(f"{loss = :.3f}") # loss = 0.034
z = 5
print(f"z = {z:0b}") # z = 101