【问题标题】:How to decrement time in python? [duplicate]如何在python中减少时间? [复制]
【发布时间】:2021-12-15 18:53:56
【问题描述】:

尝试在不使用日期时间的情况下模拟倒计时,将 3 小时 0 分 0 秒从 3 小时 0 分 0 秒递减到零。不知道如何将其设置为带有调制的循环。

【问题讨论】:

  • 提示:你可能想使用睡眠功能
  • 使用带秒数的循环,并做一点数学运算将其转换为小时和分钟。
  • 你为什么想使用datetime?否则,您将不得不手动编码日期的解析,然后手动编码日期的减法。你有没有尝试过任何东西
  • 首先,编写一个接受整数秒的函数并在上面打印您的字符串。然后,就变成了一个简单的循环,seconds = 5400/while seconds:/printsecs(seconds)/seconds -= 1/time.sleep(1)

标签: python python-3.x


【解决方案1】:

我想我明白了,谢谢你们。

for x in range(5400,0,-1):
    def format_time(time):
        seconds_to_minute = 60
        seconds_to_hour = 60*seconds_to_minute

        hours = time // seconds_to_hour
        time %= seconds_to_hour

        minutes = time // seconds_to_minute
        time %= seconds_to_minute

        seconds = time
        
        print("%d hours, %d minutes, %d seconds" %(hours, minutes, seconds))

    format_time(x)

【讨论】:

  • def format_time 放入循环中会适得其反。它可以工作,但是您不断地重新定义该功能,这是不必要的。一次就够了。
【解决方案2】:

您不需要调制(我假设您的意思是使用模运算符)或任何导入的模块。就这么简单:

def hms(h, m, s):
    while h >= 0:
        yield h, m, s
        if (s := s - 1) < 0:
            s = 59
            if (m := m - 1) < 0:
                m = 59
                h -= 1

for h, m, s in hms(1, 30, 0):
    print(f'{h} hr {m} min {s} sec')

【讨论】:

  • 我喜欢你创造性地使用海象运算符。
猜你喜欢
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 2021-12-28
  • 2020-06-13
相关资源
最近更新 更多