在比较python中的字符串时,我似乎遇到了一个小问题。我从一个文本文件中读入,然后一次比较三个字符。它似乎总是认为第一个“如果”的陈述是正确的,这让我困惑。(请注意,输入作为测试在循环中打印出来,并给出正确的字符串进行比较)。感谢您的帮助/建议:)
文本文件输入:
ACATTTGCTTCTGACACAACTGTGTTCACTAGCAACCTCAAACAGACACCATGGTGCATCTGACTCCTGa GGAGAAGTCTGCCGTTACTGCCCTGTGGGGCAAGGTGAACGTGGATGAAGTTGGTGGTGAGGCCCTGGGC AGGCTGCTGGTGGTCTACCCTTGGACCCAGAGGTTCTTTGAGTCCTTTGGGGATCTGTCCACTCCTGATG CTGTTATGGGCAACCCTAAGGTGAAGGCTCATGGCAAGAAAGTGCTCGGTGCCTTTAGTGATGGCCTGGC TCACCTGGACAACCTCAAGGGCACCTTTGCCACACTGAGTGAGCTGCACTGTGACAAGCTGCACGTGGAT CCTGAGAACTTCAGGCTCCTGGGCAACGTGCTGGTCTGTGTGCTGGCCCATCACTTTGGCAAAGAATTCA CCCCACCAGTGCAGGCTGCCTATCAGAAAGTGGTGGCTGGTGTGGCTAATGCCCTGGCCCACAAGTATCA CTAAGCTCGCTTTCTTGCTGTCCAATTTCTATTAAAGGTTCCTTTGTTCCCTAAGTCCAACTACTAAACT GGGGGATATTATGAAGGGCCTTGAGCATCTGGATTCTGCCTAATAAAAAACATTTATTTTCATTGC
infile = open('DNA.txt', 'r')
while True:
line = infile.readline()
if not line: break
a = []
for i in range (0, len(line), 3):
DNA = line[i:i+3]
print DNA
if DNA == 'ATT' or 'ATC' or 'ATA':
a.append('I')
elif DNA == 'CTT' or 'CTC' or 'CTA' or 'CTG' or 'TTA' or 'TTG':
a.append('L')
elif DNA == 'GTT' or 'GTC' or 'GTA' or 'GTG':
a.append('V')
elif DNA == 'TTT' or 'TTC':
a.append('F')
elif DNA == 'ATG':
a.append('M')
else:
a.append('X')
print str(a)
输出:
^{pr2}$
它的计算结果总是
I
,因为始终计算为
True
相当于:
^{pr2}$'ATC'
的真值总是真,因此得到了结果。在你可以这样检查:
其他
if
子句也是如此。在另外,请注意所有这些逻辑:
可以替换为
另外,另一种方法是使用字典映射和查找。这样,您就可以简化所有
if
逻辑。。示例:然后:
这种方式更具可读性
相关问题 更多 >
编程相关推荐