2015-11-26 26 views
0

我知道這不是解釋我想實現的最佳方式,但我會嘗試通過定義我所需的輸出來實現。一種將數字轉換爲秒的方法

上下文:對象在6:58(格式是:分:秒)傳遞點A,並在7:12通過點B.計算從A點到B點所需的時間。

從邏輯上講,你需要花費B時間才能得到結果。我預計: 0.14,因爲它需要14秒的對象,但得到0.54,因爲默認情況下Python不會知道我需要它以秒的格式計算,其中59是最大的,然後達到一個新的領先的數字。

我的代碼是非常簡單:

A=6.58 
B=7.12 
print(B-A) 
+4

爲什麼要用浮動表示時間?使用精確表示格式的數據結構,如果您確實必須使用浮點數,則將該邏輯包裝在將管理它的類中。 –

+1

我需要用浮點表示時間,因爲我的代碼的上下文比問題中顯示的要多。也請解釋我可以用課程做些什麼。我對Python很新穎。 –

+0

研究日期時間模塊,這可能適合你的目的 – Totem

回答

5

解決方案1:如果你不絕對需要懸空爲輸入

from datetime import datetime, date, time 
a = datetime.combine(date.today(), time(0, 6, 58)) 
b = datetime.combine(date.today(), time(0, 7, 12)) 

解決方案2:如果你輸入的花車

from datetime import datetime, date, time 

def float_to_datetime(myfloat): 
    minutes, seconds = str(myfloat).split('.') 
    return datetime.combine(date.today(), time(0, int(minutes), int(seconds))) 

a = float_to_datetime(6.58) 
b = float_to_datetime(7.12) 

在這兩種情況下,輸出結果爲:

print(b - a) 
0:00:14 
print((b-a).total_seconds()) 
14.0 
+0

我認爲這也適用。一旦我可以再次訪問python(學校),我將檢查它,然後我將打勾你的答案。 –