n=int(input())Q=[]for i in range(n):m=list(map(int,input().split()))#first lineo=list(map(int,input().split()))#second lineif m[1]==m[3] or m[1]!=m[5] or o[1]==o[3] or o[1]!=o[5]:Q.append("A")if (m[6]==0 and o[6]==1) or (m[6]==1 and o[6]==0):passelse:Q.append("B")if m[1]==o[1] or m[3]==o[3] or m[5]==o[5]:Q.append("C")Q.append('\n')if len(Q)==1:#"\n"算1格print("None")else:for j in Q:print(j,end="")
有兩個錯誤
第一個是判斷B時,只有第一句結尾是仄聲與第二句結尾是平聲這個條件,不可顛倒。
第二個是在判斷None時,如果Q之前已經有資料,那就算這次沒有新添加A或B或C,但由於長度不為1,所以依舊None。
改正(針對None)
我會建議每一次比對2組時都把Q清空,就不用添加"\n"(print預設結尾是"\n")。如果想要盡量維持Q在迴圈外,可以新開變數last_len記錄上次長度,先處理None再添加"\n"如果上次長度與現在長度一樣,代表沒有違反任意ABC,所以添加None,處理完後在添加"\n"。如果輸出最後多一行空行,最後用pop(應該不用)。如果還有問題歡迎詢問。