Mastering Python's Operators: Arithmetic, Relational, and Logical
Written on
Chapter 1: Introduction to Operators
Operators in Python are unique symbols that facilitate various computations. By applying these operators to operands, we can form expressions, which serve as representations of values. While Python offers a range of built-in operators, this discussion will zero in on arithmetic, relational, and logical operators.
Understanding Operators and Expressions
Operators inform Python that a computation is to be performed. For instance, to add two numbers, the syntax would be:
>>> 2 + 5
7
Here, the plus sign (+) is the operator, and the values it acts upon are the operands. Instead of using literal values, identifiers can also serve as operands:
>>> a = 2
>>> b = 5
>>> a + b
7
This series of commands is known as an expression, which combines operators and operands to yield a singular value.
Arithmetic Operators
Let's examine how arithmetic operators function in Python:
>>> a = -2
>>> b = 7
>>> -a # Two negatives should yield a positive
2
>>> a + b
5
>>> a - b
-9
>>> a * b
-14
>>> -b * a # Multiplying two negatives should yield a positive
14
>>> b / -a
3.5
>>> b % -a
1
>>> b // -a
3
>>> b ** a
0.02040816326530612
It's notable that standard division with / consistently produces a float value:
>>> 15 / 3
5.0
When performing floor division, Python truncates the fractional part for positive numbers:
>>> 7 // 2
3
For negative numbers, it rounds down, which can lead to unexpected results:
>>> 7 // -2
-4
Relational Operators
Relational operators, also known as comparison operators, allow for the evaluation of conditions:
>>> a = 2
>>> b = 4
>>> a == b
False
>>> a != b
True
>>> a < b
True
>>> a > b
False
>>> a <= b
True
These operators are essential for controlling program flow through conditional statements. They help execute specific code based on whether conditions are met:
if a > b:
# Execute some code
Mind the Gotcha
When comparing floating-point values, accuracy may become an issue:
>>> a = 2.2 + 3.6
>>> a == 5.8
False
Due to how floating-point numbers are represented in memory, it's better to check for equality using a tolerance level:
>>> tol = 1e-5
>>> abs(a - 5.8) < tol
True
Logical Operators
Logical operators join and modify expressions within a boolean context, requiring evaluations to be either True or False. They enable the creation of complex conditions:
>>> if a > 0 and b > 0:
print("a and b are both greater than 0")
For the and operator, both conditions must be true for the result to be True. The not operator inverses the boolean value:
>>> a = False
>>> if not a:
print("It gets confusing")
The or operator requires at least one condition to be true:
>>> if a > 0 or b > 0:
print("At least one is greater than 0")
Order of Precedence
Recall the BIDMAS (or BODMAS) rule from school? Python follows a similar order of operations to ensure clarity when multiple operators are involved. Operators with higher precedence are computed first, working down to those with lower precedence.
This tutorial has focused on the most frequently used operators in Python, but numerous others exist. For those interested in a deeper understanding, I recommend further reading on Python Operators and Expressions.
Thanks for engaging with this content.
Connect with me:
- Subscribe for updates on new content.
Chapter 2: Practical Examples of Operators
An instructional video covering relational and logical operations in Python.
The first video titled "GCSE Python #7: Relational and Logical Operations" provides practical insights into using these operators effectively.
This video offers a detailed overview of arithmetic and logical operators in Python.
The second video, "Arithmetic, Logical, Unary, Assignment, Relational Operators In Python," elaborates on various operator types.