2016-03-14 200 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