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

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

在 Python 中使用 __contains__ 方法

在 Python 中使用 __contains__ 方法

慕標(biāo)琳琳 2022-06-28 17:30:40
我在 python 中使用____contains__ 方法,如下所示:案例一:真if ('A','B','D').__contains__('A'or'E'):    print(True)else:    print(False)案例 2:錯誤if ('A','B','D').__contains__('E'or'B'):    print(True)else:    print(False)如果我將or替換為and,則可以使用 (('E' and 'A') and ('B' and 'C')) 等表達(dá)式。請您確認(rèn)為什么或不以標(biāo)準(zhǔn)方式工作,例如如果我要執(zhí)行類似 if(B 或 C)條件的操作?還有其他方法可以使用正則表達(dá)式或 lamda 表達(dá)式執(zhí)行上述操作嗎?
查看完整描述

2 回答

?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗 獲得超12個贊

您使用and和or不正確。


表達(dá)式 x 和 y 首先計算 x;如果 x 為假,則返回其值;否則,評估 y 并返回結(jié)果值。// https://docs.python.org/3/reference/expressions.html#boolean-operations


此外,雙下劃線函數(shù)用雙下劃線標(biāo)記,特別是作為人們通常不應(yīng)該使用它們的標(biāo)記。


(其中一種)正確的寫法是:


my_tuple=('A','B','D')

if 'A' in my_tuple or 'E' in my_tuple:

    print(True)

else:

    print(False)


查看完整回答
反對 回復(fù) 2022-06-28
?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊

首先,不要那樣使用__contains__。像這樣使用in。


if ('A' or 'E') in ('A', 'B', 'C'):

    pass

希望這將開始顯示您的問題所在。在被調(diào)用a or b之前正在評估,__contains__并且只有一個值正在測試是否包含。


該語句('A' or 'E')將簡化為'A'。這就是您的第一個案例是打印的原因True。


if ('E' or 'B') in ('A', 'B', 'C'):

    pass

對于您的第二個案例('E' or 'B')將評估為'E',而不是 in ('A', 'B', 'C'),因此您的第二個案例將打印False。


附錄


要更正此代碼,您應(yīng)該考慮得更冗長一些。


values = ('A', 'B', 'C')


if 'A' in values or 'E' in values:

    pass


if 'E' in values or 'B' in values:

    pass


查看完整回答
反對 回復(fù) 2022-06-28
  • 2 回答
  • 0 關(guān)注
  • 745 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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