My DNA Analysis Code is correct, w/o errors, but it didn’t find the usual suspect (!)
I expect to find 1 criminal amongs 3 suspects, but I find no felons and I have to release them all
Please, could someone help me ?
This is the exercise link:
…and here is the code:
sample = ['GTA','GGG','CAC'] def read_dna(dna_file): dna_data = "" with open(dna_file, "r") as f: for line in f: dna_data+=line return dna_data def dna_codons(dna): codons =  for i in range(0,len(dna),3): if i > (i + 3) < len(dna): codons.append(dna[i:i+3]) return codons def match_dna(dna): matches = 0 for codon in dna: if codon in sample: matches+=1 return matches def is_criminal(dna_sample): dna_data = read_dna(dna_sample) codons = dna_codons(dna_data) num_matches = match_dna(codons) if num_matches >= 3: print "Matches: %i. Check the result with other suspects" % num_matches else: print "Matches: %i. The suspect should be released." % num_matches is_criminal('suspect1.txt') is_criminal('suspect2.txt') is_criminal('suspect3.txt')