Python運算符教程之邏輯門詳解
邏輯門是任何數(shù)字電路的基本構(gòu)建塊。它需要一兩個輸入并根據(jù)這些輸入產(chǎn)生輸出。輸出可能為高 (1) 或低 (0)。邏輯門使用二極管或晶體管實現(xiàn)。它也可以使用真空管、光學(xué)元件、分子等電磁元件構(gòu)成。在計算機中,大多數(shù)電子電路都是由邏輯門組成的。邏輯門用于執(zhí)行計算、數(shù)據(jù)存儲或展示面向?qū)ο缶幊蹋ㄓ绕涫抢^承的力量)的電路。
定義了七個基本邏輯門:與門、或門、非門、與非門、或非門、異或門、異或門。
1. 與門
如果兩個輸入都為 1,與門的輸出為 1,否則為 0。

# 說明與門工作的 Python3 程序
def AND (a, b):
if a == 1 and b == 1:
return True
else:
return False
# 驅(qū)動程序代碼
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)," | ")
輸出:
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 |
2. 與非門
如果兩個輸入都是 1,與非門(取反)輸出 0,否則輸出 1。

# 說明與非門工作的Python3程序
def NAND (a, b):
if a == 1 and b == 1:
return False
else:
return True
# 驅(qū)動程序代碼
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)," | ")
輸出:
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 |
3. 或門
如果兩個輸入中的任何一個為 1,或門的輸出為 1,否則為 0。

# Python3 程序來說明或門的工作
def OR(a, b):
if a == 1 or b ==1:
return True
else:
return False
# 驅(qū)動程序代碼
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)," | ")
輸出:
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 |
4. 異或
門 如果輸入中的任何一個不同,異或門的輸出為 1,如果它們相同,則輸出為 0。

# 說明異或門工作的 Python3 程序
def XOR (a, b):
if a != b:
return 1
else:
return 0
# 驅(qū)動程序代碼
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)," | ")
輸出:
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 |
5. NOT Gate
它作為一個反相器。它只需要一個輸入。如果輸入為 1,它會將結(jié)果反轉(zhuǎn)為 0,反之亦然。

# Python3 程序來說明非門的工作原理
def NOT(a):
return not a
# 驅(qū)動程序代碼
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)," | ")
輸出:
1
+---------------+----------------+
| NOT Truth Table | Result |
A = False | A NOT = 1 |
A = True, | A NOT = 0 |
6. NOR 門
NOR 門(取反的 OR)如果兩個輸入都為 0,則輸出為 1,否則為 0。

# 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
# 驅(qū)動程序代碼
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)," | ")
輸出:
1
+---------------+----------------+
| NOT Truth Table | Result |
A = False | A NOT = 1 |
A = True, | A NOT = 0 |
7. XNOR 門
XNOR 門(取反的 XOR)輸出 1,兩個輸入相同,如果兩者不同,則輸出 0。

# Python3 程序來說明非門的工作原理
def XNOR(a,b):
if(a == b):
return 1
else:
return 0
# 驅(qū)動程序代碼
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)," | ")輸出:
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 |
到此這篇關(guān)于Python運算符教程之邏輯門詳解的文章就介紹到這了,更多相關(guān)Python邏輯門內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)本地批量ping多個IP的方法示例
這篇文章主要介紹了python實現(xiàn)本地批量ping多個IP的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python連接Mssql基礎(chǔ)教程之Python庫pymssql
這篇文章主要給大家介紹了關(guān)于Python連接Mssql基礎(chǔ)教程之Python庫pymssql的相關(guān)資料,文中分別介紹了連接數(shù)據(jù)庫、游標(biāo)使用注意事項、游標(biāo)返回行為字典變量、使用with語句(上下文管理器)以及調(diào)用存儲過程等的實現(xiàn),需要的朋友可以參考下2018-09-09
正確理解python中的關(guān)鍵字“with”與上下文管理器
這篇文章主要介紹了關(guān)于python中關(guān)鍵字"with"和上下文管理器的相關(guān)資料,文中介紹的非常詳細,相信對大家學(xué)習(xí)或者使用python具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-04-04
使用Python實現(xiàn)插入100萬條數(shù)據(jù)到MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)插入100萬條數(shù)據(jù)到MySQL數(shù)據(jù)庫,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下2024-04-04
Python 序列化和反序列化庫 MarshMallow 的用法實例代碼
marshmallow(Object serialization and deserialization, lightweight and fluffy.)用于對對象進行序列化和反序列化,并同步進行數(shù)據(jù)驗證。這篇文章主要介紹了Python 序列化和反序列化庫 MarshMallow 的用法實例代碼,需要的朋友可以參考下2020-02-02
python統(tǒng)計一個文本中重復(fù)行數(shù)的方法
這篇文章主要介紹了python統(tǒng)計一個文本中重復(fù)行數(shù)的方法,涉及針對Python中dict對象的使用及相關(guān)本文的操作,具有一定的借鑒價值,需要的朋友可以參考下2014-11-11

