计算时间 MM:SS:TSHSTS
Calculating time in MM:SS:TSHSTS
所以我正在使用时间将秒格式化为 MM:SS:TSHSTS 格式,意思是 minutes:seconds:1/10 秒 1/100 秒 1/1000 秒。这基本上是为了计算赛车模拟器的单圈时间。
我的输入以秒为单位,例如 124.6073 秒 -> 02:04:607.
我已经制作了这个功能并且它可以工作,我只是想知道我该如何优化它,因为在我的脑海里这有点受打击,因为我当时想不出更好的东西。
def convert_lap_times(seconds_per_lap):
minutes = seconds_per_lap // 60
seconds = seconds_per_lap % 60
rest = seconds_per_lap % 1
rest_str = str(rest).split('0.')
decimal_rest = rest_str[1]
return "%02i:%02i.%0.3s" % (minutes, seconds, decimal_rest)
所以剩下的就是所述数字的小数部分,在那之前一切正常。当我想去掉整数部分时,“大”问题就变成了,例如 0.607,我只想要 607,所以我将它解析为字符串...有更好的方法吗?
非常感谢,祝一切顺利!
你可以这样做:
def convert_lap_times(seconds_per_lap):
return "{:02.0f}:{:06.3f}".format(*divmod(seconds_per_lap,60))
print(convert_lap_times(124.6073)) # 02:04.607
所以我正在使用时间将秒格式化为 MM:SS:TSHSTS 格式,意思是 minutes:seconds:1/10 秒 1/100 秒 1/1000 秒。这基本上是为了计算赛车模拟器的单圈时间。
我的输入以秒为单位,例如 124.6073 秒 -> 02:04:607.
我已经制作了这个功能并且它可以工作,我只是想知道我该如何优化它,因为在我的脑海里这有点受打击,因为我当时想不出更好的东西。
def convert_lap_times(seconds_per_lap):
minutes = seconds_per_lap // 60
seconds = seconds_per_lap % 60
rest = seconds_per_lap % 1
rest_str = str(rest).split('0.')
decimal_rest = rest_str[1]
return "%02i:%02i.%0.3s" % (minutes, seconds, decimal_rest)
所以剩下的就是所述数字的小数部分,在那之前一切正常。当我想去掉整数部分时,“大”问题就变成了,例如 0.607,我只想要 607,所以我将它解析为字符串...有更好的方法吗?
非常感谢,祝一切顺利!
你可以这样做:
def convert_lap_times(seconds_per_lap):
return "{:02.0f}:{:06.3f}".format(*divmod(seconds_per_lap,60))
print(convert_lap_times(124.6073)) # 02:04.607