我正在学习python,并且我有一个将毫秒转换为小时,分钟和秒的程序。我得到了与示例运行不同的错误输出。这是问题和示例运行 Question description and sample run
我想出了下面的代码
def convertMillis(millis):
seconds=(millis/1000)%60
minutes=(millis/(1000*60))%60
hours=(millis/(1000*60*60))%24
return hours,minutes,seconds
def main():
millis=int(input("Enter time in milliseconds "))
con_hour,con_min,con_sec = convertMillis (millis)
print("%d:%d:%d" % (con_hour, con_min, con_sec))
main()
当我使用convertMillis(5500),convertMillis(100000)的示例运行中的值测试程序时,我得到了正确的值,但是当我尝试使用convertMillis(555550000)时,我得到了10:19:10而不是154 :19:10
这是我的输出 Output
答案 0 :(得分:0)
在计算秒数时,使用% 60
来计算秒数,即计算出整数分钟后剩下的秒数(因此,如果我们总共有140秒,则2分钟内将占120秒)。类似地,对于分钟,% 60
是分钟数,即分钟数是考虑到整个小时数后剩下的值(因此,如果我们有450分钟,则占去7小时后还剩下30分钟)。>
但是对于计算小时数的最后一步,我们需要总小时数,而不是在计算了天数后剩下的时间。所以我们只想要:
hours = (millis // (1000 * 60 * 60))
没有% 24
。
请注意,/
in Python 3 is not integer division。为此,您需要//
。否则您会得到浮点数:
>>> 421//60
7
>>> 421/60
7.016666666666667