Skip to main content
 首页 » 编程设计

Python之比较来自txt文件的字符串输入

2025年05月04日51yxwkf

<分区>

关于在 python 中比较字符串,我似乎遇到了一个微不足道的问题。我正在从一个文本文件中读入,然后一次比较三个字符。它似乎总是认为第一个“if”语句是否正确,这让我感到困惑。 (请注意,输入作为测试在循环中打印出来,并给出正确的字符串进行比较)。感谢您的帮助/建议 :)

文本文件输入:

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) 

输出:

ACA 
TTT 
GCT 
TCT 
GAC 
ACA 
ACT 
GTG 
TTC 
ACT 
AGC 
AAC 
CTC 
AAA 
CAG 
ACA 
CCA 
TGG 
TGC 
ATC 
TGA 
CTC 
CTG 
a 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
GGA 
GAA 
GTC 
TGC 
CGT 
TAC 
TGC 
CCT 
GTG 
GGG 
CAA 
GGT 
GAA 
CGT 
GGA 
TGA 
AGT 
TGG 
TGG 
TGA 
GGC 
CCT 
GGG 
C 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
AGG 
CTG 
CTG 
GTG 
GTC 
TAC 
CCT 
TGG 
ACC 
CAG 
AGG 
TTC 
TTT 
GAG 
TCC 
TTT 
GGG 
GAT 
CTG 
TCC 
ACT 
CCT 
GAT 
G 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
CTG 
TTA 
TGG 
GCA 
ACC 
CTA 
AGG 
TGA 
AGG 
CTC 
ATG 
GCA 
AGA 
AAG 
TGC 
TCG 
GTG 
CCT 
TTA 
GTG 
ATG 
GCC 
TGG 
C 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
TCA 
CCT 
GGA 
CAA 
CCT 
CAA 
GGG 
CAC 
CTT 
TGC 
CAC 
ACT 
GAG 
TGA 
GCT 
GCA 
CTG 
TGA 
CAA 
GCT 
GCA 
CGT 
GGA 
T 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
CCT 
GAG 
AAC 
TTC 
AGG 
CTC 
CTG 
GGC 
AAC 
GTG 
CTG 
GTC 
TGT 
GTG 
CTG 
GCC 
CAT 
CAC 
TTT 
GGC 
AAA 
GAA 
TTC 
A 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
CCC 
CAC 
CAG 
TGC 
AGG 
CTG 
CCT 
ATC 
AGA 
AAG 
TGG 
TGG 
CTG 
GTG 
TGG 
CTA 
ATG 
CCC 
TGG 
CCC 
ACA 
AGT 
ATC 
A 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
CTA 
AGC 
TCG 
CTT 
TCT 
TGC 
TGT 
CCA 
ATT 
TCT 
ATT 
AAA 
GGT 
TCC 
TTT 
GTT 
CCC 
TAA 
GTC 
CAA 
CTA 
CTA 
AAC 
T 
 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I'] 
 
GGG 
GGA 
TAT 
TAT 
GAA 
GGG 
CCT 
TGA 
GCA 
TCT 
GGA 
TTC 
TGC 
CTA 
ATA 
AAA 
AAC 
ATT 
TAT 
TTT 
CAT 
TGC 
['I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I', 'I']