为了账号安全,请及时绑定邮箱和手机立即绑定

里面用or,怎么不可以呢,逻辑上是可以的呀,也没有语法错误啊

s = set([('adam'or'Adam'),('bart'or'Bart')])

print 'adam' in s

print 'Bart' in s

这样写为什么不可以呢?

正在回答

4 回答

怎么样都只会存一个值,存那个起决定性作用的值

0 回复 有任何疑惑可以回复我~

怎么样都只会存一个值,用’or‘或者’and‘都会存你个起决定作用的值

1 回复 有任何疑惑可以回复我~

要解释上述结果,又涉及到 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解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

直接给你这个解释吧

1 回复 有任何疑惑可以回复我~

是不是因为你用的or,只是表示说放置adam就可以了,因为adam表示非空,也就是非零,根据python的预算规则,后面的内容就不放置了。Bart也是这样,所以or后面的就不放了。如果改成and,就会都放进去。不知道这个解答对不对

0 回复 有任何疑惑可以回复我~
#1

天才夏超2

buddy
2016-02-25 回复 有任何疑惑可以回复我~
#2

天才夏超2

不对,一样只有前一个
2016-02-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

里面用or,怎么不可以呢,逻辑上是可以的呀,也没有语法错误啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信