我有一个txt,第一行包含测试的好答案,其他行包括参与者的ID,他们回答('之间)。如果用户给出一个输入(称之为n),则表示问题的编号,我必须计算它们中有多少是好的(类似于[0]行中的n)#) txt就像:
BCCCDBBBBCDAAA
AB123 BXCDBBACACADBC
AD995 BABCDABCBCBBBA
AH97 BCACDBDDBCBBCA
AK260 DCDCBDDAACDBDB
AL580 AACCDBBCDCAACA
AN562 BAABBDCACCBDBB
我的代码是:
person=[]
with open('answers.txt', 'r') as v:
pcs=sum(1 for line in open('answers.txt'))
for i in range(0, pcs):
person.extend(v.read().strip().split())
result=0
jnum=input('which exesises result are you interested in? ')
jnum=int(jnum)
good=person[0]
good=good[jnum]
for i in range(0, pcs):
letter=person[i*2]
letter=letter[jnum]
if good==letter:
result+=1
print(result)
else:
result=result
答案 0 :(得分:1)
是的,一旦你解决了足够的问题就会冻结它:你的最后两行是无限循环。您不会在循环中更改good
或letter
- 只要它们匹配,您就会陷入其中。
插入print
语句以跟踪执行和数据值。
另外,我强烈建议您采用增量编程。你的代码有很多问题;你应该写几行,让确定他们的工作,然后继续下一个小组。