gpt4 book ai didi

python - 如何将 float 严格限制为两个数字以获得 hh :mm:ss?

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:47 25 4
gpt4 key购买 nike

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

我想做什么?我要求某人提供三个输入,并将其全部转换为 float (因为我被告知 raw_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。但这给了我很多小数,而我只想要只有两个数字的四舍五入数字。因此,如果 time_to_think_sec = 1241414,我希望它为 12

它必须执行以下操作:%.2f:%.2f:%.2f,但我不知道如何解决这个问题。 %02f:%02f:%02f 没有成功...

最佳答案

最简单的方法是使用日期时间模块。

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。如果您愿意,您可以将秒保留为 float 并使用 %02.xf 或执行 int(round(time_to_think_seconds))

time_to_think_ms=63101534.9981
time_to_think_hours=int(floor(time_to_think_ms/1000./60./60.))
time_to_think_minutes=int(floor(time_to_think_ms-time_to_think_hours*60*60*1000)/1000./60.)
time_to_think_seconds=(time_to_think_ms-time_to_think_hours*1000*60*60-time_to_think_minutes*60*1000)/1000
time_to_think_seconds_2=int(round((time_to_think_ms-time_to_think_hours*1000*60*60-time_to_think_minutes*60*1000)/1000))

print '%02d:%02d:%02.3f'%(time_to_think_hours,time_to_think_minutes,time_to_think_seconds)
print '%02d:%02d:%02d'%(time_to_think_hours,time_to_think_minutes,time_to_think_seconds_2)

结果:

17:31:41.535
17:31:42

关于python - 如何将 float 严格限制为两个数字以获得 hh :mm:ss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40529912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com