| Operator | Name | Description |
|---|---|---|
a + b |
Addition | Sum of a and b |
a - b |
Subtraction | Difference of a and b |
a * b |
Multiplication | Product of a and b |
a / b |
True division | Quotient of a and b |
a // b |
Floor division | Quotient of a and b, removing fractional parts |
a % b |
Modulus | Integer remainder after division of a by b |
a ** b |
Exponentiation | a raised to the power of b |
-a |
Negation | The negative of a |
+a |
Unary plus | a unchanged (rarely used) |
In [1]:
# addition, subtraction, multiplication
(4 + 8) * (6.5 - 3)
Out[1]:
In [2]:
# True division
print(11 / 2)
In [3]:
# Floor division
print(11 // 2)
The floor division operator was added in Python 3; you should be aware if working in Python 2 that the standard division operator (/) acts like floor division for integers and like true division for floating-point numbers.
An additional operator that was added in Python 3.5: the a @ b operator, which is meant to indicate the matrix product of a and b.
In [4]:
a = 24
print(a)
We can use these variables in expressions with any of the operators mentioned earlier.
For example, to add 2 to a we write:
In [5]:
a + 2
Out[5]:
a with this new value, e.g. a = a + 2.
In [6]:
a += 2 # equivalent to a = a + 2
print(a)
| Operation | Description | Operation | Description | |
|---|---|---|---|---|
a == b |
a equal to b |
a != b |
a not equal to b |
|
a < b |
a less than b |
a > b |
a greater than b |
|
a <= b |
a less than or equal to b |
a >= b |
a greater than or equal to b |
In [7]:
# 25 is odd
25 % 2 == 1
Out[7]:
In [8]:
# 66 is odd
66 % 2 == 1
Out[8]:
We can string-together multiple comparisons to check more complicated relationships:
In [9]:
# check if a is between 15 and 30
a = 25
15 < a < 30
Out[9]:
In [10]:
x = 4
(x < 6) and (x > 2)
Out[10]:
In [11]:
(x > 10) or (x % 2 == 0)
Out[11]:
In [12]:
not (x < 6)
Out[12]:
We will come back to the Boolean operations in the control flow statements section.
Like and, or, and not, Python also contains prose-like operators to check for identity and membership.
They are the following:
| Operator | Description |
|---|---|
a is b |
True if a and b are identical objects |
a is not b |
True if a and b are not identical objects |
a in b |
True if a is a member of b |
a not in b |
True if a is not a member of b |
In [13]:
a = [1, 2, 3]
b = [1, 2, 3]
In [14]:
a == b
Out[14]:
In [15]:
a is b
Out[15]:
In [16]:
a is not b
Out[16]:
What do identical objects look like? Here is an example:
In [17]:
a = [1, 2, 3]
b = a
a is b
Out[17]:
a and b point to different objectsAs we saw in the previous section, Python variables are pointers. The "is" operator checks whether the two variables are pointing to the same container (object), rather than referring to what the container contains.
Often, you might be tempted to use "is" what they really mean is ==.
In [18]:
1 in [1, 2, 3]
Out[18]:
In [19]:
4 in [1, 2, 3]
Out[19]:
In [20]:
2 not in [1, 2, 3]
Out[20]:
In [21]:
4 not in [1, 2, 3]
Out[21]: