不是啊兄弟,就是有重合啊所以not flag為真,才能進(jìn)入if條件判斷提取重合元素,我大概明白你意思,但是你上面有點(diǎn)想的不對(duì),if not flag不是用來(lái)判斷如果不重合的意思,他這句話(huà)只是為了保證可以進(jìn)入if判斷從而提取重復(fù)元素,不是用來(lái)判斷重不重合的,你想想如果沒(méi)有重合元素,flag值為真,not flag為假,就無(wú)法進(jìn)入if條件所以也就不存在提取重復(fù)元素。我不知道說(shuō)清楚沒(méi)有,兄弟你再想想
if not flag: for item in s1: 這個(gè)是item=([1,2,3,4,5,6,8,10])。。。。這句: if item not in s2: 這個(gè)剔除s2不包含在item中的元素,那么這里為啥最后輸出結(jié)果沒(méi)有10呢? 10在item中,這句是剔除s2不在item中的值則跳出,與item存在的值沒(méi)關(guān)系 啊應(yīng)該最后結(jié)果應(yīng)該有10???可以10怎么被剔出去的???大哥在點(diǎn)播下我吧
模擬一下程序運(yùn)行,for item in s1第一輪item值為1,if 1 not in s2,執(zhí)行continue,執(zhí)行continue也就是終結(jié)這一輪進(jìn)入下一輪循環(huán),但顯然if不成立,也就不執(zhí)行continue,程序繼續(xù)執(zhí)行下一行print也就是打印了重合元素,后幾輪執(zhí)行情況同第一輪,一直到s1的最后一個(gè)元素10才不一樣,10并不在s2中if條件滿(mǎn)足,這輪循環(huán)中后續(xù)語(yǔ)句不再執(zhí)行,所以print不會(huì)執(zhí)行也就沒(méi)有輸出。可以再回顧一下for和continue的東西,continue跳出的是本次循環(huán)所以是針對(duì)for并非針對(duì)if。還有一個(gè)小tip,可以借助pycharm斷點(diǎn)一步步看程序運(yùn)行,加油!
2022-03-03
因?yàn)橛兄睾戏祷豧alse,所以flag的值為假,not flag就為真,所以if not flag就是為了進(jìn)入這個(gè)條件判斷,接下來(lái)的操作就是打印重復(fù)元素了