Python 对于不运行PSET6 DNA CS50x的循环

Python 对于不运行PSET6 DNA CS50x的循环,python,for-loop,cs50,Python,For Loop,Cs50,我的代码总是输出“不匹配”,所以我在debug50上运行它。我的计数函数有时是正确的,但即使我知道它正确地计数了STR,它的输出也是“不匹配”。我只在查找匹配项的代码上运行了debug50,我发现出于某种原因,它跳过了for循环,而for循环包含保存和比较其中所有内容的所有代码。我知道,如果不是“csv_文件中的for I”,而是使用range()函数,则for循环将运行。我不知道为什么会这样,因为我之前在代码中做了完全相同的事情。Csv_文件是small.Csv或large.Csv的.read

我的代码总是输出“不匹配”,所以我在debug50上运行它。我的计数函数有时是正确的,但即使我知道它正确地计数了STR,它的输出也是“不匹配”。我只在查找匹配项的代码上运行了debug50,我发现出于某种原因,它跳过了for循环,而for循环包含保存和比较其中所有内容的所有代码。我知道,如果不是“csv_文件中的for I”,而是使用range()函数,则for循环将运行。我不知道为什么会这样,因为我之前在代码中做了完全相同的事情。Csv_文件是small.Csv或large.Csv的.reader(),具体取决于您作为命令行参数输入的内容

# comparing repetitions with people
csv_dic = []
count = 0
match = False
for i in csv_file:
    csv_dic.append(csv_file[i])
for line in csv_file:
    name = line[0]
    for i in range(len(maxes)):
        if csv_dic[i] == maxes[i]:
            match = True
            match_name = name
if match == True:
    print(match_name)
else:
    print("No Match")
file.close()
f.close()

我知道你有什么问题。执行此循环时:

for i in range(len(maxes)):
        if csv_dic[i] == maxes[i]:
            match = True
            match_name = name
您没有考虑到
csv\u dict
不包含值,而是包含一个名称或STR本身的名称。您应该将其更改为:

for i in range(1, len(maxes)):
        if csv_dic[i] == maxes[i]:
            match = True
            match_name = name

希望这能解决你的问题!:)

查看什么是
csv\u文件
?纯Python文件?一个
csv.reader
?名单?字典?Csv_文件是一个Csv.reader。是的,这些链接帮助很大。非常感谢。