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

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

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

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

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

# Python3 程序來說明非門的工作原理
def NOT(a):
return not a
# 驅(qū)動(dòng)程序代碼
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)如果兩個(gè)輸入都為 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ū)動(dòng)程序代碼
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,兩個(gè)輸入相同,如果兩者不同,則輸出 0。

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

