第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“and”和“or”語句的意外結果

“and”和“or”語句的意外結果

回首憶惘然 2023-03-16 17:14:15
在下面的代碼中,我希望它打印出來reach here 2,因為沒有一個變量滿足if語句的條件但是,代碼打印出來了reach here 1。m = 1type1 = 'a'type2 = 'x'if m > 1 and type1 == 'b' and type2 == 'y' or 'z':    print('reach here 1')elif type1 == 'a' and type2 == 'x':    print('reach here 2')任何人都可以解釋代碼為什么能夠“ reach here 1”,并幫助我更正該if語句,以便它reach here 1僅在m > 1和type1 = 'b'等于type2或'y'時打印'z'?欣賞!
查看完整描述

2 回答

?
茅侃侃

TA貢獻1842條經(jīng)驗 獲得超22個贊

觸發(fā)“reach here 1”語句的原因是第一個 if 條件被評估為 true。

由于您沒有括號/“和”語句分組,如果所有三個和語句都為真一個“或”語句為真,則第一個“如果”語句將被評估為真并且“到達此處 1”將是打印。

在這種情況下,一個“或”語句為真。Python 正在查看行

if m > 1 and type1 == 'b' and type2 == 'y' or 'z'

并說,“好吧,m>1,檢查。type1 不 == b,所以不,這些 AND 語句是假的。然后,它移動到 OR 語句并說‘或 Z’是真的。

在 python 中,任何非空字符串值都為真。因此,'z' 的計算結果為 TRUE 并且滿足 OR 條件 - 感謝@juanpa.arrivillaga 進行了此更正。有關詳細信息,請參閱此頁面:python 中字符串的真值


查看完整回答
反對 回復 2023-03-16
?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

對于語句,type2 == 'y' or 'z'這不會檢查 type2 是“y”還是“z”。相反,您應該使用in將值作為列表的運算符


In [19]: m = 1

    ...: type1 = 'a'

    ...: type2 = 'x'

    ...:

    ...: if m > 1 and type1 == 'b' and type2 in ["x","z"]:

    ...:     print('reach here 1')

    ...: elif type1 == 'a' and type2 == 'x':

    ...:     print('reach here 2')

    ...:

reach here 2


查看完整回答
反對 回復 2023-03-16
  • 2 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號