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

b='' print 'hello',b or'python'输出结果

b=''    print 'hello',b or'python'输出结果不是应该为:hello  

实际输出结果:hello python

这是为什么

正在回答

3 回答

正如楼上所提到的短路计算。这句代码简化为b = print f1, f2 or f3。应该经过如下运算:

  1. 运行f1,即print ‘hello’

  2. 计算f2 or f3,即b or ‘python’。由于b= '',所以空;这句话等于‘python’。所以继续print ‘python’

这样打印结果就是 hello python

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

七安_ 提问者

非常感谢!
2016-07-21 回复 有任何疑惑可以回复我~

在这个代码里,b的值为空值,既b为False。所以当b or 'Python'时,返回的值是'Python'

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

要解释上述结果,又涉及到 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。


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

举报

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

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

进入课程

b='' print 'hello',b or'python'输出结果

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