所以我正在做一个测验python程序,似乎我的程序存在一些问题。 在第一次如果你想开始测验,测验将开始并打印出问题,就像正常的测验一样,当你回答正确的问题时,我会给你积分。然而 在测验结束后,你想再次进行测验,这就是问题开始的地方,当我想开始测验时,不打印问题
while True:
print('1. Take test, 2. Add Question, 3. Modify, 4. Delete, 5. Exit')
n=input('Choice: ')
counter=0
lines=q.readlines()
liness=p.read()
key=liness.split('\n')
while n not in ('1','2','3','4','5'):
print('Invalid Choice')
n=input('Choice: ')
if n=='1':
score=0
counter=0
n=0
nb=0
while True:
linez=lines[n:n+5]
for line in linez:
print(line)
b=CheckAnswer()
if b==key[nb]:
score=score+1
print('Nice')
n=n+6
nb=nb+1
counter=counter+1
print('Current Score: ',score)
if counter>=len(key):
break
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
执行完这些行之后:
lines=q.readlines()
liness=p.read()
文件指针p和q指向文件的末尾。以下对readlines
和read
的调用将从文件末尾开始,因此将返回空答案...
您可以使用q.tell()
检查文件中的实际位置,q.seek(0)
会将指针重置为文件的开头...
在这种特殊情况下,在从文件中读取后添加以下行将解决问题:
q.seek(0)
p.seek(0)