课程
/后端开发
/Python
/初识Python
s = set([('adam'or'Adam'),('bart'or'Bart')])
print 'adam' in s
print 'Bart' in s
这样写为什么不可以呢?
2015-06-28
源自:初识Python 6-7
正在回答
怎么样都只会存一个值,存那个起决定性作用的值
怎么样都只会存一个值,用’or‘或者’and‘都会存你个起决定作用的值
要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。
1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。
直接给你这个解释吧
是不是因为你用的or,只是表示说放置adam就可以了,因为adam表示非空,也就是非零,根据python的预算规则,后面的内容就不放置了。Bart也是这样,所以or后面的就不放了。如果改成and,就会都放进去。不知道这个解答对不对
天才夏超2
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序