zoukankan      html  css  js  c++  java
  • 【原创】Python基础:你真的知道and和or的用法吗

    先说下基础题

    # 基础题:
    # 年龄大于18,则'成年',否则'未成年'

    其中有种写法是

    #  方法3:
    msg=age>18 and '成年' or '未成年'
    msg

    和大多数人一样,第一眼看到大脑嗡嗡响,这是啥啊,我怎么看不懂?

     简化版:a and b or c

    解释:如果a为真,返回b,否则返回c

    这里涉及到逻辑短路问题。

    用几行伪代码表示如下:

    # True and x=x
    # False and x=False
    # True or x=True
    # False or x=x

    即:如果出现短路,则返回and (或or)左边的值,否则返回右边的值

    举个例子:

    print(0 and 2) # and短路:取前
    print(1 and 2) # and非短路:取后
    print(0 or 2) # or非短路:取后
    print(1 or 2) # or短路:取前

     是不是很清晰了。

    再次回到前面的问题,and和or同时出现,一般按照从左到右执行

    print(1 and 2 or 3) # 左右顺序
    print(0 and 2 or 3) # 左右顺序

    最后,分解步骤,再合起来看,结果是一样的。

     

    到这里,差不多结束了,是不是很清晰了,你学会了吗?

    下篇预告:条件语句的N种写法

    还是那个未成年和成年的判断

    ------------------------------- ********厚德达理,励志勤工******** -------------------------------
  • 相关阅读:
    每日总结3.8
    Go中定时器实现原理及源码解析
    Go语言实现布谷鸟过滤器
    详解Go语言调度循环源码实现
    Go语言中时间轮的实现
    详解Go语言I/O多路复用netpoller模型
    详解Go中内存分配源码实现
    Go中由WaitGroup引发对内存对齐思考
    【分享】java精品实战教程
    nginx实战教程
  • 原文地址:https://www.cnblogs.com/hightech/p/14773464.html
Copyright © 2011-2022 走看看