Logic gates are elementary building blocks for any digital circuits. It takes one or two inputs and produces output based on those inputs. Outputs may be high (1) or low (0). Logic gates are implemented using diodes or transistors. It can also be constructed using vacuum tubes, and electromagnetic elements like optics, molecules, etc. In a computer, most of the electronic circuits are made up of logic gates. Logic gates are used for circuits that perform calculations, data storage, or show off object-oriented programming especially the power of inheritance.
Types of Logic Gates in Python
There are seven basic logic gates in Python. These are the following:
- AND Gate
- OR Gate
- NOT Gate
- NAND Gate
- NOR Gate
- XOR Gate
- XNOR Gate
AND Gate in Python
The AND gate gives an output of 1 if both the two inputs are 1, it gives 0 otherwise.

Python3
def AND (a, b):
if a = = 1 and b = = 1 :
return True
else :
return False
if __name__ = = '__main__' :
print (AND( 1 , 1 ))
print ( "+---------------+----------------+" )
print ( " | AND Truth Table | Result |" )
print ( " A = False, B = False | A AND B =" ,AND( False , False ), " | " )
print ( " A = False, B = True | A AND B =" ,AND( False , True ), " | " )
print ( " A = True, B = False | A AND B =" ,AND( True , False ), " | " )
print ( " A = True, B = True | A AND B =" ,AND( True , True ), " | " )
|
Output
True
+---------------+----------------
| AND Truth Table | Result |
A = False, B = False | A AND B = False |
A = False, B = True | A AND B = False |
A = True, B = False | A AND B = False |
A = True, B = True | A AND B = True |
NAND Gate in Python
The NAND gate (negated AND) gives an output of 0 if both inputs are 1, it gives 1 otherwise.

Python3
def NAND (a, b):
if a = = 1 and b = = 1 :
return False
else :
return True
if __name__ = = '__main__' :
print (NAND( 1 , 0 ))
print ( "+---------------+----------------+" )
print ( " | NAND Truth Table | Result |" )
print ( " A = False, B = False | A AND B =" ,NAND( False , False ), " | " )
print ( " A = False, B = True | A AND B =" ,NAND( False , True ), " | " )
print ( " A = True, B = False | A AND B =" ,NAND( True , False ), " | " )
print ( " A = True, B = True | A AND B =" ,NAND( True , True ), " | " )
|
Output
True
+---------------+----------------
| NAND Truth Table | Result |
A = False, B = False | A AND B = True |
A = False, B = True | A AND B = True |
A = True, B = False | A AND B = True |
A = True, B = True | A AND B = False |
OR Gate in Python
The OR gate gives an output of 1 if either of the two inputs are 1, it gives 0 otherwise.

Python3
def OR(a, b):
if a = = 1 or b = = 1 :
return True
else :
return False
if __name__ = = '__main__' :
print (OR( 0 , 0 ))
print ( "+---------------+----------------+" )
print ( " | OR Truth Table | Result |" )
print ( " A = False, B = False | A OR B =" ,OR( False , False ), " | " )
print ( " A = False, B = True | A OR B =" ,OR( False , True ), " | " )
print ( " A = True, B = False | A OR B =" ,OR( True , False ), " | " )
print ( " A = True, B = True | A OR B =" ,OR( True , True ), " | " )
|
Output
False
+---------------+----------------+
| OR Truth Table | Result |
A = False, B = False | A OR B = False |
A = False, B = True | A OR B = True |
A = True, B = False | A OR B = True |
A = True, B = True | A OR B = True |
XOR Gate in Python
The XOR gate gives an output of 1 if either of the inputs is different, it gives 0 if they are the same.

Python3
def XOR (a, b):
if a ! = b:
return 1
else :
return 0
if __name__ = = '__main__' :
print (XOR( 5 , 5 ))
print ( "+---------------+----------------+" )
print ( " | XOR Truth Table | Result |" )
print ( " A = False, B = False | A XOR B =" ,XOR( False , False ), " | " )
print ( " A = False, B = True | A XOR B =" ,XOR( False , True ), " | " )
print ( " A = True, B = False | A XOR B =" ,XOR( True , False ), " | " )
print ( " A = True, B = True | A XOR B =" ,XOR( True , True ), " | " )
|
Output
0
+---------------+----------------+
| XOR Truth Table | Result |
A = False, B = False | A XOR B = 0 |
A = False, B = True | A XOR B = 1 |
A = True, B = False | A XOR B = 1 |
A = True, B = True | A XOR B = 0 |
NOT Gate in Python
It acts as an inverter. It takes only one input. If the input is given as 1, it will invert the result as 0 and vice-versa.

Python3
def NOT(a):
return not a
if __name__ = = '__main__' :
print (NOT( 0 ))
print ( "+---------------+----------------+" )
print ( " | NOT Truth Table | Result |" )
print ( " A = False | A NOT =" ,NOT( False ), " | " )
print ( " A = True, | A NOT =" ,NOT( True ), " | " )
|
Output
1
+---------------+----------------+
| NOT Truth Table | Result |
A = False | A NOT = 1 |
A = True, | A NOT = 0 |
NOR Gate in Python
The NOR gate (negated OR) gives an output of 1 if both inputs are 0, it gives 0 otherwise.

Python3
def NOR(a, b):
if (a = = 0 ) and (b = = 0 ):
return 1
elif (a = = 0 ) and (b = = 1 ):
return 0
elif (a = = 1 ) and (b = = 0 ):
return 0
elif (a = = 1 ) and (b = = 1 ):
return 0
if __name__ = = '__main__' :
print (NOR( 0 , 0 ))
print ( "+---------------+----------------+" )
print ( " | NOR Truth Table | Result |" )
print ( " A = False, B = False | A NOR B =" ,NOR( False , False ), " | " )
print ( " A = False, B = True | A NOR B =" ,NOR( False , True ), " | " )
print ( " A = True, B = False | A NOR B =" ,NOR( True , False ), " | " )
print ( " A = True, B = True | A NOR B =" ,NOR( True , True ), " | " )
|
Output
1
+---------------+----------------+
| NOR Truth Table | Result |
A = False, B = False | A NOR B = 1 |
A = False, B = True | A NOR B = 0 |
A = True, B = False | A NOR B = 0 |
A = True, B = True | A NOR B = 0 |
XNOR Gate in Python
The XNOR gate (negated XOR) gives an output of 1 both inputs are same and 0 if both are different.

Python3
def XNOR(a,b):
if (a = = b):
return 1
else :
return 0
if __name__ = = '__main__' :
print (XNOR( 1 , 1 ))
print ( "+---------------+----------------+" )
print ( " | XNOR Truth Table | Result |" )
print ( " A = False, B = False | A XNOR B =" ,XNOR( False , False ), " | " )
print ( " A = False, B = True | A XNOR B =" ,XNOR( False , True ), " | " )
print ( " A = True, B = False | A XNOR B =" ,XNOR( True , False ), " | " )
print ( " A = True, B = True | A XNOR B =" ,XNOR( True , True ), " | " )
|
Output
1
+---------------+----------------+
| XNOR Truth Table | Result |
A = False, B = False | A XNOR B = 1 |
A = False, B = True | A XNOR B = 0 |
A = True, B = False | A XNOR B = 0 |
A = True, B = True | A XNOR B = 1 |
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!