Python 教程之运算符(11)Python中的逻辑门

简介: Python 教程之运算符(11)Python中的逻辑门

逻辑门是任何数字电路的基本构建块。它需要一两个输入并根据这些输入产生输出。输出可能为高 (1) 或低 (0)。逻辑门使用二极管或晶体管实现。它也可以使用真空管、光学元件、分子等电磁元件构成。在计算机中,大多数电子电路都是由逻辑门组成的。逻辑门用于执行计算、数据存储或展示面向对象编程(尤其是继承的力量)的电路。

定义了七个基本逻辑门:与门、或门、非门、与非门、或非门、异或门、异或门。

1. 与门 

如果两个输入都为 1,与门的输出为 1,否则为 0。

image.png

# 说明与门工作的 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)," | ")

输出: 

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。

image.png

# 说明与非门工作的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)," | ")

输出: 

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。

image.png

# 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)," | ")

输出: 

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。


image.png

# 说明异或门工作的 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)," | ")

输出: 

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,它会将结果反转为 0,反之亦然。

image.png

# 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)," | ")

输出: 

1
+---------------+----------------+
 | NOT Truth Table | Result |
 A = False | A NOT = 1  | 
 A = True, | A NOT = 0  | 

 

6. NOR 门 

NOR 门(取反的 OR)如果两个输入都为 0,则输出为 1,否则为 0。

image.png

# 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)," | ")

输出: 

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  | 

7. XNOR 门 

XNOR 门(取反的 XOR)输出 1,两个输入相同,如果两者不同,则输出 0。

image.png

# 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)," | ")

输出:

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  | 
目录
相关文章
|
5天前
|
测试技术 PHP 索引
CANopen for Python 使用教程(二)
CANopen for Python 使用教程(二)
20 5
|
5天前
|
XML 编解码 数据可视化
MoJoCo 入门教程(六)Python LQR 教程
MoJoCo 入门教程(六)Python LQR 教程
7 2
MoJoCo 入门教程(六)Python LQR 教程
|
2天前
|
XML 程序员 数据格式
豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
Python 是活力四射的语言,是不断发展中的语言。就连使用 Python 多年的行者也不敢说对 Python 的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。 今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解书籍,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书,笔者试图将优化后的学习体验,通过故事的方式传达给读者。对于零基础的小白来说更建议入门后再来品读。
|
4天前
|
Python
二:《Python基础语法汇总》— 输入与输出&运算符
【8月更文挑战第16天】本篇文章详细讲述了关于输入输出函数的语法及占位符;转义字符和运算符的使用,并附上详细的代码示例
7 2
|
5天前
|
Linux iOS开发 MacOS
|
5天前
|
索引 Python
Python openpyxl使用教程
Python openpyxl使用教程
7 0
游戏的运行逻辑分析 | Python从入门到精通:入门篇之二十二
学完了上述课程之后,来检验一下大家的学习成果。跟着老师来开发一个小游戏吧,游戏名称是:唐僧大战白骨精。本节课先来带大家分析一下游戏的开发逻辑。
游戏的运行逻辑分析 | Python从入门到精通:入门篇之二十二
|
7天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
|
5天前
|
算法 程序员 开发工具
百万级Python讲师又一力作!Python编程轻松进阶,豆瓣评分8.1
在学习Python的旅程中你是否正在“绝望的沙漠”里徘徊? 学完基础教程的你,是否还在为选择什么学习资料犹豫不决,不知从何入手,提高自己?
|
3天前
|
数据采集 存储 人工智能
掌握Python编程:从基础到进阶的实用指南
【8月更文挑战第17天】 本文旨在通过浅显易懂的语言和实际案例,为初学者和有一定基础的开发者提供一条清晰的Python学习路径。我们将从Python的基本语法入手,逐步深入到面向对象编程、数据科学应用及网络爬虫开发等高级主题。每个部分都配备了代码示例和实操建议,确保读者能够将理论知识转化为实际能力。无论你是编程新手,还是希望提升Python技能的开发者,这篇文章都将为你打开一扇通往高效编程世界的大门。
7 2