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