【原创】Python基础:你真的知道and和or的用法吗

先说下基础题

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

其中有种写法是

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

【原创】Python基础:你真的知道and和or的用法吗

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

 简化版: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短路:取前

【原创】Python基础:你真的知道and和or的用法吗

 是不是很清晰了。

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

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

【原创】Python基础:你真的知道and和or的用法吗

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

 【原创】Python基础:你真的知道and和or的用法吗

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

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

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