如何理解Python or,具体是什么意义

python ‘or’ 的具体用法:对于or 一直理解的不透,我想问一下,下面两种写法有没有区别?

a = 'AAAAA'
b = 'BBBBB'
c = 'CCCCC'
mode = 'BBBBB'
if mode == a or b:
    print('one parameter or yes')
if mode == a or mode == b:
    print('two parameter or yes')

or是连接两个表达式的,它跟c语言里的||是一样一样的
如果写成if mode == a or b,那么mode==a是一个表达式,b是另一个表达式
如果你想写跟mode == a or mode == b等价的表达式,可以写if mode in ('a','b')

有区别的

  • 直接写一个b,就是判断b是不是空,也就是空字符串、空列表、空值等等
  • mode==b,这是判断两者是否相等

img

区别的原因就是在于or优先级比==低,优先编译==,在你这个场景里自己体会一下

  • 这篇文章讲的很详细,请看:python 运算符“or”的短路求值特性。
  • 除此之外, 这篇博客: python中布尔类型or和and和not的介绍中的 或运算:or 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 只要有一个布尔值为true,计算结果就是true
    true or true #----->计算结果为true
    true or false #----->计算结果为true
    false or true #----->计算结果为true
    false or false #----->计算结果为false
    例:
    a or b
    #根据或运算法则
    #当a为true时,则输出a
    #当a为false时,则输出b

  • 以下回答由chatgpt基于相关博客总结生成:

    Python 中的 or 关键字表示或者的意思,用于进行逻辑运算和条件判断。

    在逻辑运算中,or 表示只要两边有一个为真,整个表达式即为真。举个例子:

    a = 1
    b = 2
    c = a or b
    print(c)
    

    输出结果为 1,因为 a 为真,整个表达式即为真,所以 c 的值为 a 的值 1。

    在条件判断中,or 用于判断多个条件,只要有一个条件为真,整个条件判断即为真。举个例子:

    age = 18
    if age < 18 or age > 60:
        print('不合法') 
    else:
        print('合法')
    

    输出结果为 '不合法',因为 age 小于 18,满足其中一个条件即为真,整个条件判断即为真。

    两种 or 的使用方式的区别在于,第一种方式用于逻辑运算,返回两个值中的一个,而第二种方式用于条件判断,返回多个条件中为真的一个。代码示例如下:

    # 逻辑运算中的 or
    a = 1
    b = 2
    c = a or b
    print(c)  # 输出 1
    
    # 条件判断中的 or
    age = 18
    if age < 18 or age > 60:
        print('不合法') 
    else:
        print('合法')
    

    如果你想判断多个条件,可以使用如下方式:

    score = 90
    if score >= 90:
        print('优秀')
    elif score >= 80 or score < 90:
        print('良好')
    elif score >= 70 or score < 80:
        print('一般')
    else:
        print('不及格')