亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

cs50 dna 當我調試我的代碼時我得到了這個錯誤

cs50 dna 當我調試我的代碼時我得到了這個錯誤

慕碼人2483693 2023-06-20 16:12:36
這是我的代碼,好的,我知道我的代碼在算法上有 o^234234324 復雜性,但它適用于除 sequences/15.txt 和 sequences/16.txt 之外的所有序列import sysimport csvif len(sys.argv) != 3:    print("useage: filenameofdata.cvs filenameofsequence.txt")    sys.exit(1)with open(sys.argv[1], "r") as datafile:    readdata = list(csv.reader(datafile))with open(sys.argv[2], "r") as sequencefile:    readsequence = list(csv.reader(sequencefile))strs = list(readdata[0][1:])conlist = []dnanum = 0for move in (strs):    sequence = list(readsequence[0][0])    consecutively = 0    l = len(move)    cursor = [None] * 2    temp = [None] * l    x = 0    counter = 0    while counter == 0:        if sequence == []:            conlist.append(consecutively)            break        for oneletter in (sequence):            if x < 2:                cursor[x] = oneletter            temp[x] = oneletter            x += 1            if x == l:                asstring = ''.join(map(str, temp))                if asstring == move:                    dnanum += 1                    move                    temp = [None] * l                    x = 0                    continue                else:                    if consecutively < dnanum:                        consecutively = dnanum                    oneletter = sequence.remove(cursor[0])                    temp = [None] * l                    x = 0                    dnanum = 0                    break# this print was for check if i got the right str consecutivelyprint(conlist)conlist = ''.join(map(str, conlist))for y in readdata:    x = ''.join(map(str, y[1:]))    if conlist == x:        print(y[0])        sys.exit(1)print("No match")當我嘗試在 sequences/15.txt 和 sequences/16.txt 中調試它時,或者如果我嘗試運行它們,我在調試時沒有輸出按摩錯誤
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

那太復雜了。為了獲得每個STR的最大連續STR數,我只寫了6行代碼:


for i in range(1, len(data[0])):  # loop through all STR


    count = 1


    string = data[0][i]  # assign each STR to a string


    while string * count in dna:  # if find 1 string, then try to find string*2, and so on


        count += 1


    counts.append(str(count - 1))  # should be decreased by 1 as initialized to 1


查看完整回答
反對 回復 2023-06-20
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號