Python 逻辑运算符

yizhihongxing

什么是逻辑运算符

我们在高中数学就已经学习过逻辑运算。比如有两个命题,a=真命题,b=假命题。那么“a且b”为假,“a或b”为真,“非a”为假,“非b”为真。

在Python中也有类似的逻辑运算,而使用这些运算的符号即为逻辑运算符

Python中的逻辑运算符有3种,具体含义请看下表:

逻辑运算符 含义 举例说明
and 逻辑与运算,等价于数学中的“且” 如:a and b,当a和b都为真(True)时,a and b 的结果才为真(True),否则为假 (False)
or 逻辑或运算,等价于数学中的“或” 如:a or b,当a 和 b都为假(False)时,a or b 的结果才为假(False),否则为真(True)。
not 逻辑非运算,等价于数学中的“非” 如:not a,当a为真(True)时,not a 的结果为假,当a为假(False)时,not a的结果为真。相当于对a取反。

逻辑运算符的作用

逻辑运算符一般与比较运算符结合使用。例如:

25>10 and 25>30

25>10的结果是True,25>30的结果是False,根据 and 的特性,当两边的结果都为True时,此表达式才为True。但25>10 and 25>30右边表达式的结果为False,所以它的整个表达式的结果为False,不成立。

再举个通俗的例子,加入,某公司要招聘25岁以下的女秘书,即可以用以下方法表示:

age = int(input("请输入年龄:"))
sex = input('请输入性别(男或女):')

if age<25 and sex == '女':
    print('恭喜,您被录取了!')
else:
    print('抱歉,您不符合条件。')

以上程序中,用户将年龄输入在25岁以下,并且性别输入“女”时,会输出“恭喜,您被录取了!”,否则输出“抱歉,您不符合条件。”。

需要注意的一点是,Python逻辑运算符操作的表达式不一定必须是bool类型,而且它的输出结果也不一定是bool类型。

我们看看以下例子:

print(1 and 2 and 3)#输出3
print(0 and 1 and 2)#输出0
print('' or 'http://pythonjishu.com/')#输出 http://pythonjishu.com/
print(0 or 'http://pythonjishu.com/')#输出 http://pythonjishu.com/
print(1 or 'http://pythonjishu.com/')#输出 1

大家可以实际试试以上代码的输出结果是否与注释中一致。接下来我解释下为什么没有输出bool型结果,以及and or的运行机制。

逻辑运算符运行机制

简单来说,在Python的一个逻辑运算表达式中,and、or输出的是其中一个表达式的结果,无论这个表达式是不是bool型。

以上面的print(1 and 2 and 3)为例,and并不是从整体去计算结果的,而是按照1->2->3顺序去计算的,然后输出了最后一个表达式(也就是2)的结果。

同理,or的运行机制也是这样的。

那么为什么print(0 and 1 and 2)这个表达式输出的结果是0而不是2呢?

这是因为0,或者""、''、None这种值,在在Python的逻辑运算中,被认为是与False是等价的。你可以把0当成False去看,就容易理解了。按照 and 的逻辑规则:当a和b都为真(True)时,a and b 的结果才为真(True),否则为假 (False)0 and 1 and 2它的第一个表达式的结果就是0,程序已没必要再去计算后面的表达式结果了,所以直接输出了0。

这是Python的逻辑运算符需要注意的一点。

如果你认为你已经理解了逻辑运算符,那么你可以尝试思考以下几个表达式的结果是什么:

1 and 2 or 3 and 4
1 and 2 and (3 or 4)

如果你思考的结果与程序执行的结果一致,那么恭喜你,你已经理解了逻辑运算符!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 逻辑运算符 - Python技术站

(0)
上一篇 2023年1月8日
下一篇 2023年2月14日

相关文章

  • Python 比较运算符

    比较运算符 比较运算符,顾名思义,它用于对常量、变量或表达式的结果进行大小、是否相同的比较。比较的结果为 bool 类型,如果结果成立,则返回 True(真),反之则返回 False(假)。 以下是 Python 所有的比较运算符。 比较运算符 说明 > 大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。 < 小于,…

    Python运算符 2023年1月8日
    00
  • Python 算数运算符

    算术运算符,即数学运算符,用来对数字进行数学运算,比如基本的加减乘除等。下表是 Python 支持的所有基本算术运算符。 运算符 说明 实例 运算结果 + 加法 3.14+5.33 8.47 – 减法 3.14-0.66 2.48 * 乘法 3.14*6 18.84 / 除法(与数学规则一致) 20/5 4.0 // 整除(只保留商的整数部分) 21//5 …

    2022年12月18日
    00
  • Python 赋值运算符

    赋值运算符通常是指将右侧的值赋值给左侧的变量(或者常量)中。这类的赋值运算符用等号“=”表示。 同时,赋值时也可以进行某些算数运算后,再赋值给左侧的变量。比如加减乘除运算、函数调用、逻辑运算等。这类的赋值通常需要结合其他运算符,比如+=、-=、*=、/=等等。 “=”赋值运算符 “=”是 Python 中最常见、最基本的赋值运算符,它直接将右侧的值赋值给左侧…

    Python运算符 2022年12月19日
    00
  • Python 位运算符详解(原理、作用、使用方法)

    什么是位运算 Python的位运算操作的是数据存储在内存中的二进制位,一般用于底层程序的开发,如驱动、图像处理、单片机等,如果你不关注底层开发,可以跳过本节,等到有实际需要时再去学习也是可以的。 由于Python位运算符计算的是存储在内存中的二进制数据(只计算0和1),所以它只能操作整数int类型。Python中的位运算符有以下: 位运算符 说明 使用方式 …

    2023年2月14日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

合作推广
合作推广
分享本页
返回顶部