2016-03-14 164 views
1

我刚刚开始这段代码,但是当我尝试运行它时,我一直在主体上获取无效的语法。将毫秒转换为小时,分钟和秒python

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() 

这是为什么? 我是否在正确的轨道上让它出来放在正确的格式。

我希望它显示前。 convertmillies(5500)返回0:0:5

请帮助

更新

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

    return (hours, minutes, seconds) 

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

    print ("%d:%d:%d" % (hours, minutes, seconds)) 

main() 

我必须给一个两个功能,一个必须包含convertMillis(millis)来: ,但它说,小时没有定义,为什么?

+0

你离开了')'你'print'通话结束。 – zondo

+0

可能重复[如何将毫秒转换为人类可读形式?](http://stackoverflow.com/questions/175554/how-to-convert-milliseconds-into-human-readable-form) – Andy

+0

您可以简化'convertMillis (分钟,秒)= divmod(milli,100)','小时,分钟= divmod(分钟,60)'。此外,你没有返回任何东西。你应该说'返回(小时,分钟,秒)'。另外,在main()中,你定义了'milli'作为print()的返回值。 'print()'总是返回None。你可以从头开始打印('从头开始和')'。此外,要打印它,请使用'print(“:”。join(convertMillis(int(milli))))' – zondo

回答

7

的语法,如果你想要一个单一的功能:

def 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)) 

main() 
1

试试这个:

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() 

的问题似乎是:

  1. 你缺乏局部和全局变量的理解。仅仅因为您的convertMillis中有一个变量,并不意味着main将会读取它。你必须明确地归还它们。
  2. 你误会的printinputreturn
+0

为什么不利用'divmod()'? – zondo