嘿,伙计们,我正在用python编写一个程序。这是一个计算程序,它给你两个从2到10的随机数,然后问你2*4是多少。在
如果你的答案是正确的,那就给你一个分数。现在,我希望程序让用户计算20秒,当20秒结束时,它会显示你有多少分。在
到目前为止我的代码->
__author__ = 'Majky'
import random
import time
a = random.randint(2, 10)
b = random.randint(2, 10)
print("How much is", a, "times", b)
t = 0
odg = int(input("Answer ?"))
sec = 0
while sec < 20:
if odg == a * b:
print("Correct")
t = +1
print("Incorrect")
print("Your points are", t)
您将要使用threading,并打开一个并行线程来计算该时间(可能通过使用时间。睡觉())和return一旦完成,一旦返回,主线程将停止执行并返回结果。
在主程序中使用sleep()只会暂停执行一段时间,据我所知,这不是您想要的。您希望用户能够在计时器运行时与程序交互。这就是使用线程模块中的线程所允许的。在
下面是一个使用线程的快速示例(如果需要任何特定的东西,请调整它):
^{pr2}$这里还有一个例子,如果20秒时间到了,信号会在回答过程中停止用户并对结果进行计数。这个例子使用signals,它本身就是一个有趣的模块来控制执行流,如果有机会,您应该检查它的文档。
我还意识到您的代码中还有一个错误,我忽略了这一点,现在在两个示例中都已更正了,当您要增加“t”时,请使用“t+=1”,因为“t=+1”是不正确的,所以最后一个表达式每次都只是给t赋值“正”一个,所以不会增加。干杯!在
另外,别忘了添加到健全性检查中,这样无效的用户输入不会破坏代码。我把这个留给你;)
您可以使用
time.time()
执行类似的操作。在您可以使用
time.sleep(20)
函数等待20秒。在此函数在给定的秒数内暂停执行。参数可以是浮点数,以指示更精确的睡眠时间。在
实际的暂停时间可能比请求的时间短,因为任何捕获到的信号都将在执行该信号的捕获例程之后终止
sleep()
。另外,由于系统中其他活动的调度,暂停时间可能比任意数量的请求长。在相关问题 更多 >
编程相关推荐