如何提高将秒转换为小时,分钟和秒格式的代码的可读性

时间:2019-06-11 01:08:44

标签: python-3.x

我得到了执行所需代码的代码,但与实际解决方案相比,我觉得它是经过硬编码的。关于如何调整“小时”,“分钟”,“秒”变量以使读者更清楚的任何建议?

def rotating(add_amount):

2 个答案:

答案 0 :(得分:0)

使用取模而不是除法。一开始它们有点令人困惑,但它们确实非常出色。

def convert(seconds):
    secs = seconds%60
    mins = (seconds//60)%60
    hrs  = (seconds//3600)
    return (secs,mins,hrs)

从代码优化的角度来看,我的代码总共执行四个算术运算,而您的代码则执行十次。另外,整个(Hours * 60)有点难以理解。 并不是说您的代码不好,只是有点不清楚。尽管可读性很重要,但是您的代码却不那么难以理解。

答案 1 :(得分:0)

常量有助于提高可读性。还可以使用模数帮助:

SEC_PER_MIN = 60
SEC_PER_HOUR = SEC_PER_MIN * 60

secs = int(input("Seconds: "))

hours = secs // SEC_PER_HOUR
remaining_seconds = secs  % SEC_PER_HOUR
mins =  remaining_seconds // SEC_PER_MIN
remaining_seconds %= SEC_PER_MIN
print(f"{hours} Hours, {mins} Minutes, and {remaining_seconds} Seconds")

或者您可以滥用time模块并使它处理所有逻辑:

import time
secs = int(input("Seconds: "))
result = time.strftime('%H Hours, %M Minutes, %S Seconds', time.gmtime(secs))
print(result)