0

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

4

1 回答 1

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恭喜你的兄弟!

于 2013-05-28T20:23:19.097 回答