我在为我儿子准备复习测验时遇到了一些问题。这是一个阅读文本文件,并以随机顺序显示问题的测验。当他把每个问题回答了两遍后,测验就停止了。你知道吗
所以他可以自己计时,我如何在那里添加一个计时器,当第一个问题显示时开始,当他正确回答每个问题两次时打印?我使用的是python3.3。你知道吗
以下是迄今为止的代码:
import random
import time
#open the text file
myfile = open("james.txt")
mylines = myfile.read().splitlines()
wrong = 0
#make blank lists
questions = []
answers = []
scores = []
#Seperate the file into Question and answer
for linenumber in range(0, len(mylines), 2):
questions.append(mylines[linenumber])
answers.append(mylines[linenumber+1])
scores.append(0)
#Ask Question
for questionnumber in range(0,len(questions)):
while scores[questionnumber] <2:
questions.append(mylines[linenumber])
questionnumber = random.randint(0,len(questions))
print(questions[questionnumber])
print(scores)
#Generate Possible Answer
possibleanswers = []
possibleanswers.append(answers[questionnumber])
for answerposition in range(1,3):
randomnum = random.randint(0,len(answers)-1)
while answers[randomnum] in possibleanswers:
randomnum = random.randint(0,len(answers)-1)
possibleanswers.append(answers[randomnum])
#Shuffle Answers
random.shuffle(possibleanswers)
for answernumber in range(0,len(possibleanswers)):
print(answernumber+1,possibleanswers[answernumber])
input1 = int(input())
givenanswer = possibleanswers[input1-1]
if givenanswer == answers[questionnumber]:
print("Yes")
scores[questionnumber] = scores[questionnumber]+1
else:
print("No, the answer was",questionnumber)
wrong = wrong+1
randint
是包含的,因此它可以返回任何小于等于len(questions)
的数字。如果它返回尽可能大的数字,那么您将得到一个索引器。例如,如果questions
是三个元素长,那么questions[3]
将超出范围。你知道吗减少随机数的允许范围:
编辑:在
#ask question
循环中似乎还有一个输入错误,导致questions
比answers
大。你知道吗这似乎是复制粘贴错误。在这里附加到
questions
没有什么意义,因为它应该已经在#Seperate
代码之后完全填充了。我建议去掉这条线。你知道吗相关问题 更多 >
编程相关推荐