a = True print a and 'a=T' or 'a=F'
a?=?True print?a?and?'a=T'?or?'a=F'
計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?
因為Python把0
、空字符串''
和None
看成?False,其他數值和非空字符串都看成?True,所以:
True?and?'a=T'?計算結果是?'a=T' 繼續計算?'a=T'?or?'a=F'?計算結果還是?'a=T'
不明白為什么最終計算結果是'a=T'?
a?=?True print?a?and?'a=T'?or?'a=F'
計算結果不是布爾類型,而是字符串 'a=T',這是為什么呢?
因為Python把0
、空字符串''
和None
看成?False,其他數值和非空字符串都看成?True,所以:
True?and?'a=T'?計算結果是?'a=T' 繼續計算?'a=T'?or?'a=F'?計算結果還是?'a=T'
不明白為什么最終計算結果是'a=T'?
2018-08-08
舉報
2018-08-08
a=True
print a and 'a=T' or 'a=F'
and : x and y,當x為false時,返回false;否則,返回y。所以 True and 'a=T' 返回 'a=T'
or: x or y,當x為true時,返回x;否則,返回y。所以 'a=T' or 'a=F' 返回 'a=T'
2018-08-08
短路計算,and 和 or 返回的都是決定整個語句最終結果的一方
2018-08-08
看print的三個表達式
a為Ture, 'a=T'為True, 'a=F'為True, and連接的兩個表達式,左邊為True時,右邊還會走,or連接的兩個表達式,
左邊為True時,右邊不會走。
a為True,所以走了'a=F'
a and 'a=T'的結果為Ture,所以'a=F'不會走。
2018-08-08
and 判斷左右兩邊的運算結果,都為真成立
or在執行時左邊為真就不再繼續執行所以為‘a=T’,如果左邊不為真則繼續判斷右邊
2018-08-08
三元運算? 這樣寫的話? 代碼其實是這樣運行的:
判斷 a 是true或是false?? 若果判斷成功? 輸出‘a=T’ 否則輸出 'a=F'
和下面的這種寫法效果相同,