Все операторы Python для начинающих
Основные операторы Python
Как выполнить базовые математические операции?
Для сложения, вычитания, умножения, деления используются операторы +, -, *, /. Целочисленное деление выполняется оператором //, остаток от деления %, возведение в степень **.
a = 10
b = 3
print(a + b) # 13
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000выражения языка python (выражения в python)
Альтернативно можно использовать встроенные функции pow() для возведения в степень и divmod() для одновременного получения частного и остатка.
print(pow(a, b)) # 1000
print(divmod(a, b)) # (3, 1)значение выражения python (значение выражений в python)
Типичная ошибка: деление на ноль вызывает исключение ZeroDivisionError. Всегда проверяется делитель перед использованием.
if b != 0:
print(a / b)
else:
print("Деление на ноль")
операторы языка python (операторы в python)
Как сравниваются значения в Python?
Операторы сравнения: ==, !=, >, <, >=, <=. Они возвращают True или False.
x = 5
y = 10
print(x == y) # False
print(x < y) # Trueоператор python примеры (примеры операторов в python)
Для сравнения с учётом точности чисел с плавающей точкой используется math.isclose().
import math
a = 0.1 + 0.2
b = 0.3
print(a == b) # False
print(math.isclose(a, b)) # TrueЧастая ошибка: путаница между = (присваивание) и == (сравнение). При использовании одного знака в условии возникает SyntaxError или логическая ошибка.
Как объединить несколько условий?
Логические операторы and, or, not позволяют комбинировать условия.
age = 25
has_license = True
if age >= 18 and has_license:
print("Может водить")Можно использовать цепочки сравнений без явного and, например if 18 <= age < 65.
if 18 <= age < 65:
print("Взрослый трудоспособного возраста")Проблема: приоритет логических операторов. and имеет более высокий приоритет, чем or. Для ясности используются круглые скобки.
# Без скобок результат может быть неожиданным
if (age > 18 or age == 18) and has_license:
passКак изменить значение переменной с помощью операции?
Операторы присваивания с операцией: +=, -=, *=, /=, //=, %=, **=.
count = 10
count += 5 # count = 15
count -= 3 # count = 12
print(count)Можно записать длинную форму: count = count + 5. Но оператор присваивания короче и читаемее.
Ошибка: попытка использовать += с неизменяемыми типами (строками, кортежами) работает, но создаётся новый объект. Для списков += изменяет список на месте.
Как выполнить побитовые операции?
Битовые операторы: & (И), | (ИЛИ), ^ (исключающее ИЛИ), ~ (НЕ), << (сдвиг влево), >> (сдвиг вправо).
x = 5 # 0101
y = 3 # 0011
print(x & y) # 0001 -> 1
print(x | y) # 0111 -> 7
print(x ^ y) # 0110 -> 6
print(~x) # 1010 -> -6 (в дополнительном коде)
print(x << 1) # 1010 -> 10
print(x >> 1) # 0010 -> 2Для работы с отдельными битами удобно использовать функцию bin().
print(bin(x)) # 0b101
print(bin(y)) # 0b11
print(bin(x & y)) # 0b1Типичная ошибка: сдвиг на отрицательное число или слишком большой сдвиг приводят к неожиданным результатам или исключениям.
Как проверить, содержится ли элемент в последовательности?
Оператор in проверяет членство (для списков, строк, кортежей, множеств, словарей).
fruits = ["яблоко", "банан", "вишня"]
if "банан" in fruits:
print("Есть банан")Для строк in проверяет подстроку.
text = "Hello, world"
print("world" in text) # TrueОшибка: путаница с not in. Для проверки отсутствия используется if not item in list: или if item not in list: (рекомендуется второй вариант).
Как узнать, является ли объект тем же самым, что и другой?
Оператор is проверяет идентичность (ссылаются ли переменные на один и тот же объект в памяти).
a = [1, 2, 3]
b = a
c = [1, ######## 2, 3]
print(a is b) # True
print(a is c) # FalseДля сравнения содержимого используется ==. is применяется в основном для проверки на None: if x is None.
Ложное срабатывание: для малых целых чисел и коротких строк Python может кешировать объекты, поэтому is может вернуть True для одинаковых литералов, но на это полагаться не стоит. Используется == для сравнения значений.
Расширенные примеры использования операторов
Как использовать цепочки сравнений для проверки диапазона?
x = 15
if 10 < x < 20:
print("x в диапазоне 10..20")x в диапазоне 10..20
Как присвоить значение переменной внутри выражения (оператор walrus)?
numbers = [1, 2, 3, 0, 5]
while (n := len(numbers)) > 0:
print(f"Осталось {n} элементов")
numbers.pop()Осталось 5 элементов Осталось 4 элемента Осталось 3 элемента Осталось 2 элемента Осталось 1 элемент
Как применить оператор or для выбора значения по умолчанию?
name = input("Введите имя: ") or "Аноним"
print(f"Привет, {name}!")Введите имя: Привет, Аноним!
Как перегрузить операторы в пользовательском классе?
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2)Vector(4, 6)
Как использовать битовые операторы для работы с флагами?
READ = 1 # 001
WRITE = 2 # 010
EXECUTE = 4 # 100
permissions = READ | WRITE # 011
if permissions & EXECUTE:
print("Есть право исполнения")
else:
print("Нет права исполнения")Нет права исполнения
Как работает оператор not в неожиданных контекстах?
a = []
b = [1, 2]
if not a:
print("a пустой")
if b and not a:
print("b не пустой, a пустой")a пустой b не пустой, a пустой