【问题标题】:Display time in seconds within a loop在循环内以秒为单位显示时间
【发布时间】:2013-09-24 03:21:44
【问题描述】:

我想创建一个以秒为单位打印时间的 while 循环。问题似乎是秒的值一遍又一遍地打印相同的值。该值是执行循环的时间。我基本上希望循环在不使用 sec = sec + 1 的情况下计算秒数。

import time

t = time.gmtime()

def display_seconds(x):
    sec = time.strftime('%S',x)
    sec = int(sec)
    print sec

while True:
    display_seconds(t)

【问题讨论】:

    标签: python loops time


    【解决方案1】:

    发生的情况是您获得了一次时间,然后一遍又一遍地显示相同的时间 - 请注意 t 在您的循环中永远不会改变。试试这个吧:

    import time
    
    def display_seconds(x):
        sec = time.strftime('%S',x)
        sec = int(sec)
        print sec
    
    while True:
        t = time.gmtime()
        display_seconds(t)
    

    【讨论】:

    • 它不仅有效,而且合乎逻辑。我真的不需要以秒为单位显示像时间这样基本的东西。但是,它是一个动态变化的值,我可以使用它来测试我的逻辑,以便将其应用于另一个问题。当stackoverflow允许我这样做时,我会接受这个答案。谢谢!
    • @branch.lizard:当然。创建一个get_seconds 方法,它与display_seconds 相同,只是它返回sec 而不是打印它。然后做if get_seconds(t) == 45: break
    • 太棒了!!!再次感谢。顺便说一句,不接受答案的正确格式来询问关于 OP 的附加问题是在 stackoverflow 上做事的正确方式吗?
    • @branch.lizard:嗯,不是真的,因为最初的问题是被问到的。通常只对答案发表评论就足够了,回答者或其他人会帮助你。如果没有,那么你可以问另一个问题
    • @branch.lizard: 很高兴能帮上忙 =)
    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 2022-11-02
    • 1970-01-01
    • 2015-09-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多