如何在python中创建计时器
我正在制作一个脚本,询问数学问题,我想知道,我该如何制作计时器?我想制作一个计时器,让用户有20秒的时间来回答问题,当时间到了,然后说:“对不起,不正确。”我试着记录给出问题的时间,然后从他们回答问题的时间中减去它,如果它太大或等于20,则显示不正确,但是它不起作用。任何帮助都将不胜感激如何在python中创建计时器,python,Python,我正在制作一个脚本,询问数学问题,我想知道,我该如何制作计时器?我想制作一个计时器,让用户有20秒的时间来回答问题,当时间到了,然后说:“对不起,不正确。”我试着记录给出问题的时间,然后从他们回答问题的时间中减去它,如果它太大或等于20,则显示不正确,但是它不起作用。任何帮助都将不胜感激 if op != '*': # != means 'not equal' r1 = random.randint (-1, 100) # Randomises a number from -1 to 1
if op != '*': # != means 'not equal'
r1 = random.randint (-1, 100) # Randomises a number from -1 to 100
r2 = random.randint (-1, 100)
answer = ops.get(op)(r1,r2)
start = time.time()
equ = int(input('Q{}: What is {} {} {}?\n'.format(q, r1, op, r2)))
end = time.time()
if end - start >= 20:
print ("Sorry you took too long to answer.")
elif answer.upper() = 'FRIDAY':
print 'Correct, today is {}'.format(answer)
else:
r1 = random.randint(-1,12)
r2 = random.randint(-1,12)
answer = ops.get(op)(r1,r2)
equ = int(input('Q{}: What is {} x {}?\n'.format(q, r1, r2)))
if equ == answer :
score += 1
print("Correct, Well done, your score is: " + str(score))
else:
print("Incorrect, Sorry. Your score is: " + str(score))
您可以使用类似的方法检查并查看他们回答问题的时间是否超过20秒:
import time
start = time.time()
answer = raw_input('What day is it?: ')
end = time.time()
if end - start >= 20:
print 'You took too long to answer'
elif answer.upper() == time.strftime('%A').upper():
print 'Correct, today is {}'.format(answer)
else:
print 'That's not correct, sorry'
编辑:我认为这适用于你正在努力实现的目标。希望你能从中吸取教训
import time
import random
import operator
ops = {'+':operator.add,
'-':operator.sub,
'*':operator.mul,
'/':operator.truediv}
i = 1
while True:
r1 = random.randint(-1,12)
r2 = random.randint(-1,12)
op = random.choice(list(ops.keys()))
answer = ops.get(op)(r1,r2)
start = time.time()
equ = int(input('Q{}: What is {} {} {}?\n'.format(i, r1, op, r2)))
end = time.time()
if end - start >= 10:
print('You took too long to answer')
elif equ == answer:
print('Correct!')
else:
print('Wrong')
i += 1
“它不工作”:请解释,并发布更完整的源代码(例如,循环中有什么?)。为了给你一个有用的答案,你需要告诉我们更多关于接口的信息。您是否使用GUI工具包中的对话框?控制台窗口?在任何情况下,一个有用的搜索词是“超时”。谷歌搜索“输入”和“超时”产生了许多有用的页面,例如,这些页面可能是重复的,但它只在Linux中工作。我使用的是Python IDLEYou还没有阐明计时器“不工作”或“干扰”的方式,但如果此代码与实际代码完全相同,那么我猜问题是你的缩进。answer.upper()有什么作用?@pythontamer它会将用户的答案转换为所有大写字母,因此如果他们键入
Friday
、Friday
、Friday
或任何其他可能的情况,在我检查它们是否正确之前,它们都会被更改为'FRIDAY'
。我的脚本会询问数学问题,我想在询问问题之前和之后添加计时器,但是当我的脚本检查用户的答案是否正确时,这会产生干扰。我不会粘贴我的整个脚本,以避免人们复制…@pythontamer不要担心这里有人复制你的脚本。如果没有它,我们无法真正给您一个完整的答案,因此您必须修改像这样的示例以适合您的应用程序。根据你上面所说的,这应该很容易做到你想做的。你给我看的代码中的部分:否则:打印“对不起,这不正确”,我想更改它,使它进入下一行,等等。