如何在python中创建计时器

如何在python中创建计时器,python,Python,我正在制作一个脚本,询问数学问题,我想知道,我该如何制作计时器?我想制作一个计时器,让用户有20秒的时间来回答问题,当时间到了,然后说:“对不起,不正确。”我试着记录给出问题的时间,然后从他们回答问题的时间中减去它,如果它太大或等于20,则显示不正确,但是它不起作用。任何帮助都将不胜感激 if op != '*': # != means 'not equal' r1 = random.randint (-1, 100) # Randomises a number from -1 to 1

我正在制作一个脚本,询问数学问题,我想知道,我该如何制作计时器?我想制作一个计时器,让用户有20秒的时间来回答问题,当时间到了,然后说:“对不起,不正确。”我试着记录给出问题的时间,然后从他们回答问题的时间中减去它,如果它太大或等于20,则显示不正确,但是它不起作用。任何帮助都将不胜感激

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不要担心这里有人复制你的脚本。如果没有它,我们无法真正给您一个完整的答案,因此您必须修改像这样的示例以适合您的应用程序。根据你上面所说的,这应该很容易做到你想做的。你给我看的代码中的部分:否则:打印“对不起,这不正确”,我想更改它,使它进入下一行,等等。