Python时间模块用now.strftime()输出错误

问题描述 投票:0回答:1

我试着写了一个小脚本,通过按回车键给出实际的系统时间。

如下图所示,输出的是18:51:16。等了8分钟后,按回车键,我先收到18:51:18,第二次按回车键,Idle显示的是真正的时间值。每次我等几分钟就会发生这种情况。这是一个无休止的循环,所以我试着用None或del命令重置now.strftime('%H %M %S')的值,但结果和之前一样。

import time

while True:
now = datetime.datetime.now()
text = input() 
if text == "":
    now.strftime('%H %M %S')

    print(now.strftime('%H:%M:%S'))

else:
    print("you typed some text before pressing enter")`

enter image description here

有什么办法吗?

衷心祝愿

python time output
1个回答
1
投票

在你的while循环中,你首先检索当前时间,然后等待用户的输入。用户可以等很久,甚至可以等上几天,当他们最终做出回应时,你的 now 变量将被使用。这样做的问题是 now 有旧的时间。

为了解决这个问题,把 now 在您的 input. 这样,你就可以检索到用户按回车键时的当前时间。下面是一种可能的方法。

import time

while True:
    text = input()
    if text == "":
        now = datetime.datetime.now()
        print(now.strftime('%H:%M:%S'))
    else:
        print("you typed some text before pressing enter")`
© www.soinside.com 2019 - 2024. All rights reserved.