Logical and relational operators
We advice skimming through or revisiting Exercise 3 ( More on data types and comments)
.
How are boolean values generated? Logical operators with the use of Relation operators generate Boolean Values. We are saying that when we compare values, boolean values (True
or False
) are returned as a result.
Relational Operators
Relational operators are binary operators just like the Arithmetic operators. Eg: <, >, <=, >=, ==, !=
. Hence are sometimes referred to as Comparison operators. They are used for comparing values.
Table of relational operators
Operator | Name | Use case | Return value |
---|---|---|---|
< | less than | 3 < 2 | False |
> | greater than | 3 > 2 | True |
<= | less than or equal to | 3 <= 2 | False |
>= | greater than or equal to | 3 >= 2 | True |
== | equal to | 3 == 2 | False |
!= | not equal to | 3 != 2 | True |
Example
# let a and b be two non-zero integers of value # 5 and 7 respectively a = 5 b = 7 # Pay much attention to the Truth values generated # greater than print("a > b", a > b) print("b > a", b > a) # less than print("a < b", a < b) print("b < a", b < a) # greater than or equal to print("a >= b", a >= b) print("b >= a", b >= a) # greater than or equal to print("a <= b", a <= b) print("b <= a", b <= a) # equal to print("a == b", a == b) # Not the double equal to. Unlike the assignment operator, # which is just a character (single equal to sign). # not equal to print("a != b", a != b) # `!` , means `not`
Logical Operators
Logical operators, combine two or more expressions to generate a boolean value. Eg: and, or, not
. This combines more relational expressions to generate a truth value.
The truth tables
The truth table simplifies what truth values are generated when using any of the logical operators.
Assume t
as True
and f
as False
AND table
For an AND
table, the truth value becomes True
only when both components are True
.
a | b | a and b |
---|---|---|
t | t | t |
t | f | f |
f | t | f |
f | f | f |
OR table
For an OR
table, the truth value becomes False
only when both components are False
.
a | b | a or b |
---|---|---|
t | t | t |
t | f | t |
f | t | t |
f | f | f |
Not table
For a NOT
table, when the value is True
it becomes False
and when it is False
then it becomes True
. NOT
here is the same as negation in some context. If an expression evaluates to True
its negation will be False
.
a | not a |
---|---|
t | f |
f | t |
Example
# let a and b be two non-zero integers of value # 5 and 7 respectively a = 5 b = 7 # and print("a <= 10 and b >= 10", a <= 10 and b >= 10) # or print("a <= 10 or b >= 10", a <= 10 or b >= 10) # not print("not a <= 10", not a <= 10) print("not b >= 10", not b >= 10) # compound with logical operators print("(a <= 10) and (b >= 10)", (a <= 10) and (b >= 10)) print("(a <= 10) or (b >= 10)", (a <= 10) or (b >= 10)) print("(a <= 10) or (b >= 10)", (a <= 10) or (b >= 10))
Note
- Any value that is
None
(null - has no value), empty, zero, ... is evaluated toFalse
otherwiseTrue
. - So all empty structures are evaluated to
False
by Python. -
not
is unary, thenTrue or not True => True or False => True
- order of precedence,
not, and, or
Practicals
Find the Truth Value of the following:
True and not False
not True and not False
True and False and True or False
True or False and True or False
Summary
- Relational operators are used for comparison
- Logical operators compound simple relational expressions
-
not
is a unary operator
Top comments (1)
Great, keep going ;