首页 > 其他分享 >and/or 与 &/| 的区别

and/or 与 &/| 的区别

时间:2023-12-26 13:32:11浏览次数:30  
标签:返回 输出 False 区别 布尔值 print True

  • 前提背景
  • if 判断
  • 所有非0的数值都判断为True
  • 值为0, 判断为False


  • and/or 逻辑运算
  • 用于布尔值时
  • 用于数值时
  • 所有非0的数值都判断为True
  • 遇到0, 判断为False (转为普通逻辑运算)
  • 没有遇到0
  • and 返回比较后的值
  • or 返回第一个值
  • 又有and 又有or 返回第一个and/or的判断结果
  • 用于元组, 似乎同上
1 and 2 or 3  # 返回2
1 or 2 and 3  # 返回1
(True, False) and (True, True)  # 返回and后面的(True, True)
(True, False) or (True, True)  # 返回or前面的(True, False)
(1, 2) and (3, 4)  # 返回and后的元组
(1, 2) or (3, 4)  # 返回or前的元组


  • &/|
  • 用于布尔值时
  • 可用于单个布尔值
  • 可用于series这样的多个布尔值
  • 不可用于元组
  • 用于数值时
  • 位运算



在 Python 中,andor&| 都是用于进行逻辑运算的,但它们的用法和含义有所不同。

  • andor 是逻辑运算符,主要用于比较两个布尔值或者在条件语句中使用。例如:
a = True
b = False
print(a and b)  # 输出 False
print(a or b)   # 输出 True

在 Python 中,andor 不仅可以返回 TrueFalse,还可以返回比较后的值¹。例如:

a = 1 and 2 and 3
print(a)  # 输出 3,全部都 True,所以回傳最右邊的值
b = 1 and 0 and 2
print(b)  # 输出 0,遇到 0 ( False ),回傳第一個 False 的值就是 0
c = 1 or 2 or 3
print(c)  # 输出 1,全部都 True,所以回傳第一個值
d = 1 or 0 or 3
print(d)  # 输出 1,遇到 0 ( False ),回傳第一個 True 的值就是 1
  • &| 是位运算符,主要用于进行二进制位的运算。例如:
a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101
print(a & b)  # 输出 12 = 0000 1100
print(a | b)  # 输出 61 = 0011 1101

如果 ab 是数值变量,那么 &| 就表示位运算,andor 则依据是否非0来决定输出²。例如:

# 1&2,2在二进制里面是10,1在二进制中是01,那么01与运算10得到是0
print(1 & 2)  # 输出为 0
print(1 | 2)  # 输出为3

希望这个解释能帮助你理解 Python 中 andor&| 的区别。如果你还有其他问题,欢迎随时向我提问。¹²源: 与必应的对话, 2023/12/26

(1) 邏輯判斷 ( and 和 or ) - Python 教學 | STEAM 教育學習網. https://steam.oxxostudio.tw/category/python/basic/and-or.html.

(2) Python 中 (&,|)和(and,or)之间的区别_python & &&-CSDN博客. https://blog.csdn.net/weixin_40041218/article/details/80868521.

(3) python中的and or的区别_Python:and/or 与 & /| 到底有什么区别 - CSDN博客. https://blog.csdn.net/weixin_39712969/article/details/113502535.

(4) undefined. http://aima.cs.berkeley.edu/data/iris.csv.

标签:返回,输出,False,区别,布尔值,print,True
From: https://blog.51cto.com/u_16055028/8982359

相关文章

  • clearValidate()和resetFields()表单校验的用法和区别
    目标:实现表单重置和清除验证1.整个表单的校验移除<Formref="form"rule={this.rules}><FormItemprop="name"label="姓名"><Input/></FormItem><FormItemprop="age"label="年龄"><Input/></For......
  • 【UVCAD】- 图块介绍,及与图层的区别
    【UVCAD】手机二维CAD建模,不止是看图,还提供了数十种工具用了创建和修改图形。UVCAD专注于二维(2D)的移动计算机辅助绘图(CAD)。UVCAD具有触摸优化的直观界面和工具。使用UVCAD,您可以在触摸屏上用手指或触控笔进行真正的2D绘图、2D建模和2D设计。对于需要易于使用的工具来在移动设备上更......
  • 20. git branch master跟git checkout master有什么区别
    在Git中,gitbranch和gitcheckout是两个不同的命令,它们用于不同的目的。gitbranch:该命令用于创建、列出或删除分支。如果你运行gitbranch,它会列出当前仓库中所有的分支,并标识出当前所在的分支。如果你运行gitbranch<branch_name>,它会创建一个新的分支。如果你运行g......
  • PTFE、FEP、PFA三种常见氟塑料材质的区别
    PTFE,即聚四氟乙烯,俗称塑料王。由科学家RoyJ.Plunkett于1938年发现,PTFE是最不寻常的含氟聚合物,在温度、耐化学性和不粘性能方面表现出性能。除了享有氟塑料的独特性能外,PTFE还具有以下优势:·价格:性能比高·+250°C的连续工作温度·耐几乎所有化学品·高度不粘PTFE......
  • 数据挖掘与机器学习之间有何区别?
    数据挖掘:侧重于从大量数据中提取有用的信息,以便进行决策支持或进一步的分析。数据挖掘更注重于数据的探索性和发现性。机器学习:侧重于开发算法和模型,以便从数据中学习并进行预测或决策。机器学习更注重于模型的训练和预测性能。......
  • B/S和C/S的区别和联系
    1B/SB/S(Brower/Server)架构,也称为B/S结构或B/S模式,是Web兴起后的一种网络结构模式。在这种模式下,Web浏览器成为客户端最主要的软件。系统功能实现的核心部分被集中到服务器上,这简化了系统的开发、维护和使用。客户机上只需要安装一个浏览器,而服务器上则安装了SQLServer、Oracle、M......
  • 依赖注入容器 perRequest(Transient)和Singleton区别
    在CM框架中,"perRequest"和"Singleton"都是生命周期配置选项,用于指示对象的创建和共享方式。它们之间的区别在于对象实例的生命周期和共享方式。对于"perRequest"(有时被称为"Transient"):对象的实例在每个请求处理期间只创建一次,并在同一个请求内共享。每个请求都有自己的对象实例,不......
  • python测试框架unittest和pytest区别
    一、用例编写规则(1)unittest提供了testcases、testsuites、testfixtures、testrunner相关的类,让测试更加明确、方便、可控。使用unittest编写用例,必须遵守以下规则:测试文件必须先importunittest测试类必须继承unittest.TestCase测试方法必须以“test_”开头测试类必须要有un......
  • ncnn的blob_vkallocator、workspace_vkallocator、staging_vkallocator区别
    ncnn::Extractor中有三个成员函数:voidset_blob_vkallocator(VkAllocator*allocator);voidset_workspace_vkallocator(VkAllocator*allocator);voidset_staging_vkallocator(VkAllocator*allocator);blob_vkallocator是一个用于blob数据的分配器,它可以为一些长期存储......
  • SMT贴片和后焊的区别?
    电子制造业中,SMT贴片和后焊是两种常见的表面组装技术。虽然它们都是用于焊接电子元件的方法,但是它们在工艺和应用方面存在一些显著的区别。本文由英特丽介绍smt贴片加工和后焊的区别,帮助这个行业的人更好地理解它们有什么差异。SMT贴片介绍SMT它是一种在pcb表面直接安装电子元件的......