Python CS50 PSET6-DNA-适用于小型数据库,但不适用于大型数据库
我正在学习CS50,却被困在pset6上 我编写了这段代码,它在“小”给定数据库中运行良好。 在“大”一号上,我的DNA序列中的值是错误的。 比如,使用debug50,我得到Albus序列应该是15,49,38。。。我的序号是21,55,64 怎么了?为什么它可以在小型数据库中正常工作,而不能在大型数据库中正常工作 谢谢你的帮助Python CS50 PSET6-DNA-适用于小型数据库,但不适用于大型数据库,python,cs50,dna-sequence,Python,Cs50,Dna Sequence,我正在学习CS50,却被困在pset6上 我编写了这段代码,它在“小”给定数据库中运行良好。 在“大”一号上,我的DNA序列中的值是错误的。 比如,使用debug50,我得到Albus序列应该是15,49,38。。。我的序号是21,55,64 怎么了?为什么它可以在小型数据库中正常工作,而不能在大型数据库中正常工作 谢谢你的帮助 # Import ARGV and CSV library from sys import argv, exit import pandas as pd import
# Import ARGV and CSV library
from sys import argv, exit
import pandas as pd
import csv
# Check if argv has 3 arguments (program name, cvs file and dna sequence)
while True:
if len(argv) != 3:
print("Usage: python dna.py data.csv sequence.txt")
exit(1)
else:
break
with open(argv[2], 'r', encoding="UTF-8") as txt:
dna_seq = txt.read()
#Find the number of STR - AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG
AGATC = dna_seq.count("AGATC")
TTTTTTCT = dna_seq.count("TTTTTTCT")
AATG = dna_seq.count("AATG")
TCTAG = dna_seq.count("TCTAG")
GATA = dna_seq.count("GATA")
TATC = dna_seq.count("TATC")
GAAA = dna_seq.count("GAAA")
TCTG = dna_seq.count("TCTG")
name = 0
if argv[1] == "databases/small.csv":
with open(argv[1], 'r') as csv_file:
reader = csv.DictReader(csv_file)
for row in reader:
dna_db = row['name'], row['AGATC'], row['AATG'], row['TATC']
dna_db = list(dna_db)
seq = [AGATC, AATG, TATC]
seq = [str(x) for x in seq]
if dna_db[1:4] == seq:
name = dna_db[:1]
break
else:
name = "No match"
elif argv[1] == "databases/large.csv":
with open(argv[1], 'r') as csv_file:
reader = csv.DictReader(csv_file)
for row in reader:
dna_db = row['name'], row['AGATC'], row['TTTTTTCT'], row['AATG'], row['TCTAG'],
row['GATA'], row['TATC'], row['GAAA'], row['TCTG']
dna_db = list(dna_db)
seq = [AGATC,TTTTTTCT,AATG,TCTAG,GATA,TATC,GAAA,TCTG]
seq = [str(x) for x in seq]
if dna_db[1:9] == seq:
name = dna_db[:1]
break
else:
name = "No match"
print(name)
这回答了你的问题吗?是的,现在我明白了,我想我只需要数一数它出现了多少次,而不是它连续出现了多少次。现在我只需要知道如何实现这个。。。