1.8 逻辑运算(Python)

本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python

通常情况下,逻辑运算返回的值是布尔(bool)类型。

数值判断

我们可以对数字进行大小判断:

a = 1
b = 1.0
c = 3.14

print(a == b)  # 判断a和b是否相等,输出:True
print(a != c)  # 判断a和b是否不相等,输出:True
print(a < c)  # 判断a是否小于c,输出:True
print(a > c)  # 判断a是否大于c,输出:False
print(a <= b)  # 判断a是否小于等于b,输出:True
print(b <= c)  # 判断b是否小于等于c,输出:True

由上例可得:

  • 数据类型 intfloat 不影响数值大小的比较
  • 判断是否相等使用 == 而非 = ,因为 = 在 Python 中已经被变量赋值操作使用

字符串判断

下面是一个简单的示例,用于判断两个字符串的内容是否相同:

print("HelloWorld" == 'HelloWorld')  # True
print('Hello' != "Hello")  # False

更多的时候,我们通过字符串的 .isxxx() 方法来对其的值进行一些判断校验,具体可参考 1.5 章节的“字符串方法”部分。

not 取反

a, b = 5, 10  # 一个Python风格的多变量赋值语句,记一下就好

print(a > b)  # False
print(not a > b)  # True

针对有其它编程语言基础者: not 就相当于其它编程语言中的 !

not 语句可以将一个布尔值取反操作。

print(not 0)  # True
print(not '123')  # False
print(not 3.14)  # False

not 也可以直接处理一个其它数据类型,具体操作是先将其强制转换为 bool 类型,然后再取反。

关于其它数据类型强制转换为 bool 后值为多少的问题,详见 1.2 章节的 例 04 。

成员运算符

除了大小之外,一个元素与一个序列的关系也是逻辑运算的重要部分。这么说比较抽象,我们来看两个例子。

判断元素是否在列表中

a = [1, 2, 3, 4]

print(1 in a)  # True
print(5 in a)  # False

判断字符串是否被另一个字符串包含

a = 'ABCDEFG'

print('DEF' in a)  # True
print('FGH' in a)  # False
print(not 'HIJ' in a)  # True
print('HIJ' not in a)  # True

由此例中可以看到, not 语句可以与其它语句组合使用。不仅可以如第五行这样放在整个逻辑运算语句前面,也可以像第六行这样直接组合成 not in ,使逻辑更清晰。

and 和 or

搭配逻辑运算

分别表示“与”(同时成立)和“或”(成立至少一个),也非常好理解,直接上代码

print(1 < 2 and 2 < 3)  # True
print(1 < 2 and 3 < 2)  # False

print(1 < 2 or 3 < 2)  # True

print(1 < 2 or 3 < 2 and 4 < 5)  # True

搭配数值

“搭配数值”本质上和“搭配逻辑运算”的原理是一样的。andor并非返回bool类型,而是返回最后一个(and语句)或第一个(or语句)在bool类型下为True的数据的实际值

print('Hello' and 'World')  # World
print('Hello' or 'World')  # Hello
print('' or 1)  # 1

更多类似的例子可以自己尝试。

运算优先级问题

大多数数值运算 > 大小判断 > not > and or(具体请见 1.3 章节末尾的图片)

如果需要改变顺序,与数值运算相同,请使用小括号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

异想之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值