課程
/后端開發
/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程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-07-20
正如樓上所提到的短路計算。這句代碼簡化為b = print f1, f2 or f3。應該經過如下運算:
運行f1,即print ‘hello’
計算f2 or f3,即b or ‘python’。由于b= '',所以空;這句話等于‘python’。所以繼續print ‘python’
這樣打印結果就是 hello python
2016-07-20
在這個代碼里,b的值為空值,既b為False。所以當b or 'Python'時,返回的值是'Python'
2016-07-20
要解釋上述結果,又涉及到 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。