[自学python] 关于D or N的问题
本文介绍了[自学python] 关于D or N的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
代码如下:
def is_friend(name):
return name[0] == ('D' or 'N')
# 1
print is_friend('Diane')
# 2
print is_friend('Ned')
# 3
print is_friend('Moe')
执行结果是:
True
False
False
我想问的是第二个print is_friend('Ned')
这个结果为什么是False呢
我明明写的是 D or N 如果等于的花
应该是True啊
解决方案
这个是因为Python or
和and
运算中的短路计算。
- 在计算
a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b; - 在计算
a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
再看你的表达式'D' or 'N'
,D是True,所以这个表达式的结果是D,所以Ned那个是False的。
如果想实现D或N的匹配,可以使用name[0] in ('D', 'N')
。
这篇关于[自学python] 关于D or N的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文