亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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
  • 參與學習       758397    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

b='' print 'hello',b or'python'輸出結果

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號