我以前也问过类似的问题,但在解决了之前的一些问题之后,我遇到了一个稍微不同的问题:
有两个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。如果对于特定的tagname1,程序遍历文件2中的整个tagname2列表,但找不到匹配项,则同样适用。你知道吗
但是,根据我的代码,这个程序只运行一次,snps的值为1,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
你确定要打断低if语句吗?你知道吗
例如:
这些都在第一个for循环中(对于范围(1,15)中的x):),因此如果满足其中一个条件,您将退出循环。你知道吗
如果这发生在您的第一个循环中,这可能就是为什么您只看到它运行一次的原因。你知道吗
我不完全确定我是否理解你的意图,但关键字“continue”可能就是你想要的。它将使程序进入循环的下一个迭代。你知道吗
相关问题 更多 >
编程相关推荐