Python 中 and, or, &, |, ^ 的使用小结

 更新时间:2024年01月16日 14:36:08   作者:昜羊  
这篇文章主要介绍了Python 中 and, or, &, |, ^ 的使用小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在Python中,0,“”,[],(),{},None,False为假值,其余为真值。

and 和 or

  • and布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
  • or 布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。

其中andor还有以下运算规律:

  • and和or返回的是比较的值
  • and的优先级大于or
  • 多个and的话,如果全为真,则返回最后一个值。如果其中有一个为假,则返回该假值
  • 多个or的话,如果有一个为真,则返回第一个真值。 如果全为假,则返回最后一个假值

例子:

11 and 12 and 13               # 13  
[] and 3                       # []  
None and 3                     # 没有输出(None)  
3 and 5 or 2                   # 5  
20 or False                    # 20  
(3 < 2) and 5                  # False  
(3 > 2) and 5 or 1             # 5  
(3 < 2) and 5 or 1             # 1
1 and 2 and 0 and 4 and False  # 0
1 and 2 and True and 4 and 6   # 6
0 or False or '' or 8 or 1     # 8
[] or 0 or '' or None or ()    # ()

如果有not,优先级更高:not>and>or
例子:

x=1 #将x赋值为1
y=0 #将y赋值为0
z=0 #将z赋值为0
print(x or y and not z)    # 1

  • 由于优先级是not>and>or,所以首先执行not z(也就是not 0),即 not 0 = not False =True =1
  • 下一步是轮到了and,那么 y and 1(已知y=0)即 0 and 1,也就是False and True(假与真),我们刚刚谈过and,一假即假,故y and 1 = 0 and 1 = False = 0
  • 最后一步按优先级是轮到or,即x or 0(已知x=1),即1 or 0 =True or Flase =True = 1(or即“或”中,一真即真)

所以输出结果为 1。

总结: 代码运算过程为:(用数学符号表示优先级){ x or [ y and (not z) ] }

&,|,^

如果两边是数值变量时:

  • &按位与运算符:参与运算的两个值,如果对应二个二进位都为1,则该位的结果为1,否则为0。
  • |按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
  • ^按位异或运算符:当两对应的二进位相异时,结果为1。

例子:

a = 3 & 5           # a = 1 (011 and 101 = 001)  
b = 6 ^ 2           # b = 4 (110 xor 010 = 100)  
c = 4 | 3           # c = 7 (100 or 011 = 111) 

两边是逻辑变量时

如果两边是逻辑变量时,则两类的用法基本一致.
例子:

(3>0) | (3<1)     # True
(3>0) or (3<1)    # True
(3>0) & (3<1)     # False
(3>0) and (3<1)   # False

到此这篇关于Python 中 and, or, &amp;, |, ^ 的使用的文章就介绍到这了,更多相关Python and, or, &amp;, |, ^ 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用gRPC实现数据分析能力的共享

    Python使用gRPC实现数据分析能力的共享

    gRPC是一个高性能、开源、通用的远程过程调用(RPC)框架,由Google推出,本文主要介绍了Python如何使用gRPC实现数据分析能力的共享,感兴趣的可以了解下
    2024-02-02
  • python实现获取aws route53域名信息的方法

    python实现获取aws route53域名信息的方法

    最近由于工作原因接触到aws的服务,我需要实时获取所有的域名信息,用于对其进行扫描,因此写了一个自动化爬取脚本 给需要的人分享,对python获取aws route53域名信息相关知识感兴趣的朋友一起看看吧
    2023-12-12
  • http通过StreamingHttpResponse完成连续的数据传输长链接方式

    http通过StreamingHttpResponse完成连续的数据传输长链接方式

    这篇文章主要介绍了http通过StreamingHttpResponse完成连续的数据传输长链接方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Python绘制地图神器folium的新人入门指南

    Python绘制地图神器folium的新人入门指南

    folium库是一个用于完成地图可视化的Python扩展库,下面这篇文章主要给大家介绍了关于Python绘制地图神器folium入门的相关资料,需要的朋友可以参考下
    2021-05-05
  • Python调用腾讯云短信服务发送手机短信

    Python调用腾讯云短信服务发送手机短信

    这篇文章主要为大家介绍了Python调用腾讯云短信服务发送手机短信,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python matplotlib绘画十一种常见数据分析图

    python matplotlib绘画十一种常见数据分析图

    这篇文章主要介绍了python matplotlib绘画十一种常见数据分析图,文章主要绘制折线图、散点图、直方图、饼图等需要的小伙伴可以参考一下文章具体内容
    2022-06-06
  • JPype实现在python中调用JAVA的实例

    JPype实现在python中调用JAVA的实例

    本篇文章主要介绍了JPype实现在python中调用JAVA的实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Python实现Web应用国际化i18n的示例详解

    Python实现Web应用国际化i18n的示例详解

    这篇文章主要为大家详细介绍了如何基于Python的gettext模块,实现一个灵活、可扩展的多语言支持系统,文中的示例代码讲解详细,有需要的可以参考下
    2025-02-02
  • 跟老齐学Python之用while来循环

    跟老齐学Python之用while来循环

    while,翻译成中文是“当...的时候”,这个单词在英语中,常常用来做为时间状语,while ... someone do somthing,这种类型的说法是有的。
    2014-10-10
  • Python 模拟员工信息数据库操作的实例

    Python 模拟员工信息数据库操作的实例

    下面小编就为大家带来一篇Python 模拟员工信息数据库操作的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论