2017-01-24 17 views
-1

我試圖將用戶整數輸入細分爲24小時內的小時,分​​鍾和秒,但是從過去的第一個小時方程轉換爲實際代碼時出現問題。我想最終的輸出是在X小時,Y分鐘,和Z秒:在一天中分解秒

day = 86400 
    hour = 3600 #1 hour in a day * 60min * 60 sec 
    minute = 60 
    number = input("Choose a number between 0 and 86400: ") 
    while number != 0: 
     if number > 0: 
      newNumber = number/hour 
      number = newNumber 

我教自己的編碼,所以我會愛一個簡單的方法解決這個問題......難道我甚至右側跟蹤?

編輯:我知道這個問題有一個重複的版本,但那個簡化了一些對我來說太諷刺了。我試圖通過增量步驟學習,但我很欣賞所有反饋

+2

您需要使用地板師''//和模量'%'或'divmod'可是看看在http://stackoverflow.com/questions/775049/python-time-seconds-to-hms –

+0

'#!/ usr/bin/env python3; #day = 86400; #未使用 小時= 3600; 分鐘= 60; number = int(input(「選擇0到86400之間的數字:」)); 小時=數字//小時; 分鐘=(數字%小時)// 60; seconds = number%minutes; print('hours:{h} minutes:{m} seconds:{s}'。format(h = hours,m = minutes,s = seconds));' – davedwards

回答

0

要將用戶輸入轉換爲X小時Y分鐘和Z秒,這取決於他們輸入的內容。如果是幾秒鐘,就像上面所說的那樣,然後按照上面的說法進行操作,並將秒數除以3600,然後從開始的數字中減去該數字。

此外,它看起來像你使用無限的while循環,因爲你不會每次都提示輸入。

如果你想要做你想要做的,我建議這樣的內容:

number = input("Choose a number between 0 and 86400") 
while(number != 0) 
    hours = number/3600 
    number = number-(hours*3600) 
    minutes = number/60 
    number = number-(minutes*60) 
    seconds = number 
    number = 0 
print("The Time You Entered was " + str(hours) + " hours, " + str(minutes) + " minutes, and " + str(seconds) " seconds.") 
+0

你不需要while循環。您應該使用'// floor division運算符在Python 3和Python 2上正常工作。當然,在Python 3中,您需要使用'int()'將輸入字符串轉換爲整數。而在Python 2中,您確實應該使用'raw_input'並使用'int()'進行轉換,而不是使用不安全的Python 2'input()'函數來評估用戶輸入。有關詳情,請參閱SO老將Ned Batchelder的[Eval really dangerous](http://edbatchelder.com/blog/201206/eval_really_is_dangerous.html)。 –

相關問題