如何在没有try语句的情况下使用KeyboardInterrupt

时间:2013-05-28 16:28:46

标签: python python-3.x

我正在尝试为刚刚找到工作的兄弟制作一个基本的工资计时器...我想要的是一个while循环运行代码,等待有人按Enter(或其他一些键)结束循环并给出目前的工资。我希望使用KeyboardInterrupt,但如果有更简单的方法,我很乐意听到它。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

只有当某人按ctrl-C或类似命令时才会生成键盘中断。

听起来你的计划是让代码类似:

from time import sleep

wage = 0
try:
    while True:
        wage = wage + hourly_rate
        sleep(60 * 60)  # an hour in seconds
except KeyboardInterrupt:
    print('you earned', wage)

然后有人打ctrl-C?哪个适用于try / except。但是如果你想要某人只是按回车键而不是添加东西,那就做一些数学运算:

from time import time

start = time()  # time in seconds from some arbitrary date in 1970 (it's a standard)
input('hit return to get your wage!')
end = time()
elapsed = end - start  # time that has passed in seconds between start and end
wage = hourly_rate * elapsed / (60 * 60)  # convert from hourly
print('you earned', wage)

第一个版本有点乐观,因为它在开始时每小时增加一次。第二个更准确。

ps恭喜你的兄弟!