python3字符串操作中的“and”和“or”操作符

在使用的时候不小心出错才注意到这个,写下来做记录:

python3中没有三目运算符,但是可以用“and”和“or”操作符替代,理解用法即可。如下:

结论汇总:
1. x and y 的值是x或者y, x为真就是y, x为假就是x。
2. x or y 的值是x或者y, x为真就是x, x为假就是y。
3. 在不加括号时候, and优先级大于or。

代码如下:

    a1 = "" and None
    print("a1:", a1) # a1:''       x and y,如果x、y两个值都为假,返回x;
    a2 = "" and 2
    print("a2:", a2) # a2:''       x and y,如果x、y中有一个为假,返回该假值;
    a3 = 2 and ""
    print("a3:", a3) # a3:''       x and y,如果x、y中有一个为假,返回该假值;
    a4 = "/" and 3
    print("a4:", a4) # a4:3        x and y,如果x、y都为真,返回y;
    # 结论:x、y都为字符串时,x and y,如果x为真,返回y; 如果x为假,返回x。
    # 分析:x and y,类似于三目运算符 x?y:x,原理在于逻辑判断中的截断原则,
    #               如果判断完x为假,则y不需要判断就直接返回结果为假即可,因此返回x.
    #               如果判断完x为真,则y的结果即为表达式的结果,因此直接返回y.


    b1 = "" or None
    print("b1:", b1) # b1:None     x or y,如果x、y两个值都为假,返回y
    b2 = "" or 2
    print("b2:", b2) # b2:2        x or y,如果x、y中有一个为真,返回该真值;
    b3 = 2 or ""
    print("b3:", b3) # b3:2        x or y,如果x、y中有一个为真,返回该真值;
    b4 = "/" or 3
    print("b4:", b4) # d:/         x or y,如果x、y都为真,返回x;
    # 结论:x、y都为字符串时,x or y,如果x为真,返回x; 如果x为假,返回y。
    # 分析:x or y,类似于三目运算符 x?x:y,原理同样在于逻辑判断中的截断原则,
    #              如果判断完x为真,则y不需要判断就直接返回结果为假即可,因此返回x.
    #              如果判断完x为假,则y的结果即为表达式的结果,因此直接返回y.

    e = "" and 2 or 3
    print("e:", e) # e:3
    f = "/" and 2 or 3
    print("f:", f) # f:2  先执行"/" and 2,得到2,再执行2 or 3,得到2
    g = "/" or 2 and 3
    print("g:", g) # g:/  先执行2 and 3,得到3,再执行"/" or 3,得到/
    # 结论:在不加括号时候, and优先级大于or。

    """
    汇总:对python3:
    1. x and y 的值是x或者y, x为真就是y, x为假就是x。
    2. x or y 的值是x或者y, x为真就是x, x为假就是y。
    3. 在不加括号时候, and优先级大于or。
    """

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值