【问题标题】:Trying to make a countdown with a twist试图用扭曲来倒计时
【发布时间】:2017-06-07 14:17:19
【问题描述】:

我正在尝试制作一个像小脚本一样的倒​​计时计时器。我希望它看起来像这样:

0 years left until your event.
0 months left until your event.
10 days left until your event.
234 hours left until your event.
14020 minutes left until your event.
841166 seconds left until your event.

如您所见,这不是“正常”倒计时。我希望它是这样的,总秒数,总分钟数等等。现在我在试图让它真正倒计时时遇到了麻烦。只是几秒钟工作正常,我正在使用这段代码:

def secondsLeft(eventDate):
    while secondsUntil:
        toPrint = "%s seconds left until your event." %(secondsUntil)
        print(toPrint, end='\r')
        time.sleep(1)
        secondsUntil -= 1

但是,当尝试对分钟执行相同操作时,用 time.sleep(60) 替换它不再打印出秒数!

我认为这与 while 循环有关。但是,我不知道该怎么办...感谢您在正确方向上的任何帮助!

【问题讨论】:

  • 这不是很明显吗?计算分钟数、小时数等。秒数。
  • 或者,阅读一些有关 datetime 对象的信息,使用单个 datetime 对象进行计算,然后使用所需的不同粒度进行打印。
  • @Błotosmętek 所以你是说把所有东西都放在一行中并计算,放入 def secondsLeft?目前我已经把所有的数字分开了。
  • @JosepValls 感谢您提醒我。我在我的脚本中使用了 datetime,但是我认为这个问题必须更多地使用 while 循环和其他东西而不是计算部分。我会确保查看日期时间

标签: python python-3.x timer while-loop countdown


【解决方案1】:

如果您等待一分钟,整个程序将停止一分钟。它不能减少秒数。你想要做的是,每次交互只等待一秒钟,然后添加这一行mins, secs = divmod(secondsUntil, 60)。您可以打印 mins 的 minutesUntil

【讨论】:

  • 感谢您的回答。我可以看到它是如何工作的。但是,我在以我想要打印的方式打印线条时遇到了麻烦。回车给我带来了麻烦,有什么替代方法吗?
  • 你说 CR 给你添麻烦是什么意思?
猜你喜欢
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 2017-02-14
  • 1970-01-01
  • 2011-07-19
  • 2012-08-30
相关资源
最近更新 更多