课程
/后端开发
/Python
/初识Python
b='' print 'hello',b or'python'输出结果不是应该为:hello
实际输出结果:hello python
这是为什么
2016-07-20
源自:初识Python 3-9
正在回答
正如楼上所提到的短路计算。这句代码简化为b = print f1, f2 or f3。应该经过如下运算:
运行f1,即print ‘hello’
计算f2 or f3,即b or ‘python’。由于b= '',所以空;这句话等于‘python’。所以继续print ‘python’
这样打印结果就是 hello python
七安_ 提问者
在这个代码里,b的值为空值,既b为False。所以当b or 'Python'时,返回的值是'Python'
要解释上述结果,又涉及到 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入门视频教程,让你快速入门并能编写简单的Python程序