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

b = '' print 'hello,', b or 'world'

hello''已经是True了,根据短路法则就应该只输出hello啊,为什么最后输出来的是hello world

正在回答

3 回答

b = ''                     #b为假False     
print 'hello,', b or 'world'     # hello,这个是个字串符,没有参与运算,逗号后的b or 'world'这两个才参与了运算,运算结果为真world(或运算,一方为真取真)。

#所以得出的结果应该是hello,(字串符)world(or运算得出的真值)

我是这么解释的。希望对你有帮助。

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

慕圣5556514 提问者

谢谢啊
2019-10-06 回复 有任何疑惑可以回复我~

首先(‘hello’)为字符串是不参与判定的  

print我理解为运行  a 为真时or命令规则为直接判真 所以运行后应该是“hello python”

  b为空字符那么视为假  根据or命令规则为进行下一步判定 但是下一步的‘world’是一个字符串则视为真 所以运行后应该是‘hello world’   对于or和and这两个命令的理解 我可能理解的比较土 呵呵 我就记着"or"理解为或者的意思  "and"理解为并且或是而且的意思   呵呵 说了这么多 也不知道对不对 那么这个判定我个人是这么理解的 如果不对请大神指正  


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

定义:在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

此处b未知,所以返回world,输出hello world

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

举报

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

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

进入课程

b = '' print 'hello,', b or 'world'

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