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

输出:

ini

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

输出:

ini

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  |


目录
相关文章
|
1月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
7天前
|
SQL 关系型数据库 MySQL
milvus-use教程 python
本项目参考vanna项目,获取数据库元数据和问题SQL对,存入Milvus向量数据库,并进行相似性检索。采用m3e-large嵌入模型,通过DatabaseManager类实现数据库连接持久化,MilvusVectorStore类封装了Milvus操作方法,如创建集合、添加数据和查询。项目提供init_collections、delete_collections等文件用于初始化、删除和管理集合。所用Milvus版本较新,API与vanna项目不兼容。 [项目地址](https://gitee.com/alpbeta/milvus-use)
80 9
|
14天前
|
大数据 开发者 C++
Python语法糖详解教程
《Python语法糖详解教程》介绍了编程语言中的“语法糖”,即通过特殊语法形式简化代码,使代码更简洁、易读和高效。文章详细解析了列表推导式、字典推导式、元组解包、条件表达式、with语句和装饰器等核心语法糖,并提供了具体示例和最佳实践指南。通过这些技巧,开发者可以在保持底层功能不变的前提下,显著提升开发效率和代码质量。
34 8
|
16天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
24天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
5月前
|
数据可视化 IDE 开发工具
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)
488 13
|
5月前
|
监控 数据可视化 搜索推荐
【Python篇】matplotlib超详细教程-由入门到精通(下篇)2
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
72 8
|
5月前
|
数据可视化 API 数据处理
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
259 5
|
5月前
|
编解码 数据可视化 IDE
【Python篇】matplotlib超详细教程-由入门到精通(下篇)1
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
59 3

热门文章

最新文章