 # A Simple Introduction to Boolean Logic Operators in Python

Boolean logic is a fundamental skill for any programmer. You need to have a solid understanding to be able to grasp the meaning of code quickly—and write your own bug-free code.

Oftentimes, you’ll find that the source of bugs in your code is because of flaws in your logic. So improving your ability to reason logically will improve your overall coding skill and will save you hours of painful debugging.

Boolean logic is the science of formulating and combining logical statements.

Definition: A logical statement is a statement that evaluates to a Boolean value `True` or `False`.

You can create logical statements recursively using the four Python operators `and`, `or`, `not`, and the bracket operator `( )`.

The simplest logical statement would be `A=True` or `A=False`. Now, you can create more complex logical statements using the Python operators:

• `(A)`. The logical statement `(A)` evaluates to `True `if the statement `A` is already `True`. Usually, you’ll use the bracket operator to reorder the precedence relationship. This is called the bracket (or parenthesis) operator.
• `not A`. The logical statement `not A` evaluates to `True` if statement `A` evaluates to `False`. This is called the negation operator.
• `A and B`. The logical statement `A and B` evaluates to `True `if both statements `A` and `B` are already `True`. If only one of them is `False`, the statement `A and B` evaluates to `False`, too. This is called the logical AND operator.
• `A or B`. The logical statement `A or B` evaluates to `True `if at least one statement `A` or `B` is already `True`. Only if both of them are `False`, the statement `A or B` evaluates to `False`. This is called the logical OR operator.

Here’s a number of basic examples in Python code:

```a = True
b = False

print(a)
# True

print(b)
# False

print(not a)
# False

print(not b)
# True

print(a and b)
# False

print(a and a)
# True

print(b and b)
# False

print(a or b)
# True

print(a or a)
# True

print(b or b)
# False

print((a and b) or b)
# False```

Here’s a number of advanced examples in Python code:

```# Example 0
a, b, c, d = True, False, False, True

if not a or not c:
print('yes')
else:
print('python')

'''
yes
'''

# Example 1
a, b, c, d = False, True, False, False

if not d and b and d:
if not a and not b:
print('yes')
elif a and c:
print('yes')
print('yes')
elif b:
if d:
print('love')
print('python')
else:
print('python')

'''
python
'''

# Example 2
a, b, c, d = False, True, True, True

out = any([
c or b and not d,
a and b or c or not b,
b and d and a or c,
d and not d or b or a,
not c,
not b or b,
a,
])

print(out)

'''
True
'''

# Example 3
a, b = False, True

out = (a and b and not a) or (not b) or (b and a) or (a and not a and not b)
print(out)

'''
False
'''

# Example 4
a, b, c = True, True, True

if b or not a or a:
print('love')
else:
print('python')

'''
love
'''

# Example 5
a, b = True, False

out = (a and b) or (a and b and not a) or (a)
print(out)

'''
True
'''

# Example 6
a, b, c = True, False, True

if c or a or not b or not a:
print('42')
else:
print('python')

'''
42
'''

# Example 7
a, b, c = True, False, False

out = any([
a,
c and not b,
c or a,
b or not b,
c or a,
b or c or a,
])

print(out)

'''
True
'''

# Example 8
a, b, c = True, True, True

if not c and b and c:
print('yes')
else:
print('python')

'''
python
'''

# Example 9
a, b = False, True

out = (not a and b and a) or (b and not b and a) or (b) or (b)
print(out)

'''
True
'''

# Example 10
a, b, c, d = False, True, True, False

if not b:
print('love')
else:
print('42')

'''
42
'''```

## Where to go from here?

Python is a profitable career path nowadays. But in order to thrive as a Python coder, you need to understand the basics very well. Especially, you need to “see” the meaning of source code very quickly.

To this end, I wrote the “Coffee Break Python” book series:

Check them out!