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

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

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'?


正在回答

5 回答

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'

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

qq_Cx_12 提問者

非常感謝!
2018-08-10 回復 有任何疑惑可以回復我~

短路計算,and 和 or 返回的都是決定整個語句最終結果的一方

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

看print的三個表達式

a為Ture, 'a=T'為True, 'a=F'為True, and連接的兩個表達式,左邊為True時,右邊還會走,or連接的兩個表達式,

左邊為True時,右邊不會走。

a為True,所以走了'a=F'

a and 'a=T'的結果為Ture,所以'a=F'不會走。


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

and 判斷左右兩邊的運算結果,都為真成立

or在執行時左邊為真就不再繼續執行所以為‘a=T’,如果左邊不為真則繼續判斷右邊

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

三元運算? 這樣寫的話? 代碼其實是這樣運行的:

判斷 a 是true或是false?? 若果判斷成功? 輸出‘a=T’ 否則輸出 'a=F'

和下面的這種寫法效果相同,

a=True
if?a:
????print?'a=T'
else:
????print?'a=F'


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

舉報

0/150
提交
取消
初識Python
  • 參與學習       758397    人
  • 解答問題       8967    個

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

進入課程

a = True print a and 'a=T' or 'a=F'

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

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

幫助反饋 APP下載

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

公眾號

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