Python 如何严格限制浮动到两个数字以获得hh:mm:ss?

Python 如何严格限制浮动到两个数字以获得hh:mm:ss?,python,Python,我是一个Python新手,试图学习它,但现在有些东西对我来说太模糊了。我希望有人有时间给我指出正确的方向 我想做什么?我要求某人提供三个输入,并将其全部转换为浮点值(因为我被告知raw\u input具有默认值字符串)。我想这样打印:hh:mm:ss 我这样做了三次: time_to_think = float(raw_input("Enter the time you needed: ")) 之后,我有一个if语句,它检查输入是否大于50 这一切都很好,直到我需要打印它们 所以我有这个:

我是一个Python新手,试图学习它,但现在有些东西对我来说太模糊了。我希望有人有时间给我指出正确的方向

我想做什么?我要求某人提供三个输入,并将其全部转换为浮点值(因为我被告知
raw\u input
具有默认值字符串)。我想这样打印:
hh:mm:ss

我这样做了三次:

time_to_think = float(raw_input("Enter the time you needed: ")) 
之后,我有一个if语句,它检查输入是否大于50

这一切都很好,直到我需要打印它们

所以我有这个:

if time_to_think > 50
    time_to_think_sec = round(time_to_think / 1000) # this gives me the time to think in seconds
现在,最后:

print "The time needed: %.2f:%.2f:%.2f" % (time_to_think_sec, time_to_think_minutes, time_to_think_hours)
我希望输出严格为:
hh:mm:ss
。但这给了我很多小数,而我只想要两个数字的四舍五入数字。所以如果思考时间秒=1241414,我希望它是12


它必须与:
%.2f:%.2f:%.2f:%.2f
有关,但我不知道如何修复此问题<代码>%02f:%02f:%02f没有做到这一点…

最简单的方法是使用datetime模块

t=datetime.datetime.utcfromtimestamp(63101534.9981/1000)
print t
print t.strftime('%Y-%m-%d %H:%M:%S')
print t.strftime('%H:%M:%S')
结果

1970-01-01 17:31:41.534998
1970-01-01 17:31:41
17:31:41
如果您使用
fromtimestamp
而不是
utcfromtimestamp
,您可能会在小时内得到意外的答案,因为它会扰乱时区。完整的时间戳中有年份和其他内容,但你可以忽略这些,只需在几个小时内处理。否则,你必须减去历元

如果您想手动执行此操作,我认为您希望在四舍五入后将小时和分钟转换为
int
,并使用格式代码
%02d
。您可以将秒保留为浮点数,如果需要,可以使用
%02.xf
,也可以使用
int(四舍五入(时间到思考秒))

结果:

17:31:41.535
17:31:42

看起来你应该使用int。浮点数明确表示具有点值的数字。同样,在您的格式中,您要求它以2位小数打印。所以,像这样:“time_to_think_sec=int(舍入(time_to_think/1000))”或其他什么?谢谢,伙计,投票并标记为正确答案。干杯
17:31:41.535
17:31:42