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

如果都改成and,返回结果为什么是后一个字符

a = 'python'
print 'hello', a and 'world'

hello,world


这是怎么回事?

正在回答

3 回答

'hello'是非空字符串返回true,a是非空字符串返回true,'world'是非空字符串返回true。

print 'hello', a and 'world'

在py的and短路运算中,a 、 'world'两者将做短路运算,两个都为真,输出后者('world');如果前者为false,将输出前者(a)。

print 'hello' and a and 'world'

如果都改成end,就是 'hello'、a 、'world'三者做短路运算,三者都为真,输出最后一个结果

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

镜轮凤麟 提问者

非常感谢!
2018-02-28 回复 有任何疑惑可以回复我~

a and 'world 执行到a的时候并不能确定返回值是真还是假,要执行到'world'的时候才能确定返回值是真

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

因为执行到a的时候是真,但是后面是and,不能判断最终结果,所以还要继续执行,所以返回‘world’

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

举报

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

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

进入课程

如果都改成and,返回结果为什么是后一个字符

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