我之前曾問過類似的問題,但是在解決一些以前的問題之後,我遇到了稍微不同的問題:爲什麼循環不能按預期運行?詳情如下:
有兩個txt文件的結構類似於列。文件1具有以下列:tagname1,aapos,synonymous;並且文件2具有以下內容:tagname2,aapos1,aapos2。我想要做的是將文件1中的每個標記名1與文件2中的每個標記名2進行比較,並查看它們是否匹配。對於每一場比賽,我都希望程序檢查與特定標記名1對應的aapos值是否落在aapos1和aapos2之間,正如我的第二條if語句所述。如果在遍歷全部文件2後無法找到aapos的匹配項,那麼我是否希望執行以下if語句並檢查文件1中的同義詞是否等於0或1,並將1添加到syn2或nonsyn2 ,視情況而定。如果對於特定的標記名1,則程序會遍歷文件2中的標記名2的整個列表,並且無法找到匹配。
但是,根據我的代碼,程序只運行一次,我得到的值爲1,sns和nonsyn2的值爲1。我不確定爲什麼會出現這種情況。
在範圍(1,15)X:
flag = 0
snps = 0
for b in range (1,15):
if tagname1[x]== tagname2[b]:
flag = 1
if int(aapos1[b]) <= int(aapos[x])<= int(aapos2[b]):
snps = snps + 1
if snps == 0:
if int(synonymous[x]) == 0:
nonsyn2 = nonsyn2 + 1
elif int(synonymous[x]) == 1:
syn2 = syn2 + 1
elif flag == 0:
if int(synonymous[x]) == 0:
nonsyn2 = nonsyn2 + 1
elif int(synonymous[x]) == 1:
syn2 = syn2 + 1
請格式化您的代碼。很難閱讀發佈。 – DanielSank