Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将毫秒转换为小时、分钟和秒_Python_Function_Datetime_Time - Fatal编程技术网

Python 将毫秒转换为小时、分钟和秒

Python 将毫秒转换为小时、分钟和秒,python,function,datetime,time,Python,Function,Datetime,Time,我需要将毫秒转换为秒-分-小时。我有这样的代码 def convertMillis(millis): seconds=(milli/1000)%60 minutes=(milli/(1000*60))%60 hours=(milli/(1000*60*60))%24 return def main(): milli=print(input("Enter time in milliseconds ")) print(hours,":",minu

我需要将毫秒转换为秒-分-小时。我有这样的代码

def convertMillis(millis):
    seconds=(milli/1000)%60
    minutes=(milli/(1000*60))%60
    hours=(milli/(1000*60*60))%24

    return

def main():
    milli=print(input("Enter time in milliseconds "))

    print(hours,":",minutes,":",seconds

main()
但这不是一个很好的解决方案

我想知道做这件事最像蟒蛇的方式

>>> convertmillis(5500)
0:0:5
试试这个:

 def convertMillis(millis):
     seconds=(millis/1000)%60
     minutes=(millis/(1000*60))%60
     hours=(millis/(1000*60*60))%24
     return seconds, minutes, hours

 def main():
     millis=input("Enter time in milliseconds ")
     con_sec, con_min, con_hour = convertMillis(int(millis))
     print("{0}:{1}:{2}".format(con_hour, con_min, con_sec))

 main()
问题似乎是:

  • 您缺乏对局部和全局变量的理解。仅仅因为变量在
    convertMillis
    中,并不意味着
    main
    可以读取它。您必须显式地返回它们
  • 您误解了
    打印
    输入
    返回

  • 如果您想要一个单一功能:

    millis=input("Enter time in milliseconds ")
    millis = int(millis)
    seconds=(millis/1000)%60
    seconds = int(seconds)
    minutes=(millis/(1000*60))%60
    minutes = int(minutes)
    hours=(millis/(1000*60*60))%24
    
    print ("%d:%d:%d" % (hours, minutes, seconds))
    

    您在
    打印
    调用结束时漏掉了
    。您可以使用
    minutes,seconds=divmod(mili,100)
    hours,minutes=divmod(minutes,60)
    简化
    convertMillis()
    。而且,你没有归还任何东西。您应该说
    返回(小时、分钟、秒)
    。另外,在
    main()
    中,您将
    milli
    定义为
    print()
    的返回值<代码>打印()始终返回无。您可以从开头开始打印(),从结尾开始打印()。另外,要打印它,请使用
    print(“:”.join(convertMillis(int(milli)))
    import datetime
    然后在函数中:
    duration=datetime.timedelta(毫秒=millis)
    最后:
    返回(duration.hours,duration.minute,duration.seconds)
    为什么不利用
    divmod()