2013-02-17 39 views
0
float(time) 
if time == '90.00': 
    added = added.getText() 
    if not added == '': 
     added = added.replace(':', '.') 
     added = added.replace('+', '') 
     added = ' '.join(added.split()) 
     float(added) 
     time1 = time+added 
     print time1 

從足球比賽,試圖增加'受傷時間'到90分鐘。任何想法爲什麼這是行不通的。我只是讓他們兩個並排打印一個拉添加數字會導致奇怪的結果 - 例如「90.005.25」

90.005.25 

我想我是愚蠢的,一直盯着這太久了。

由於

埃文

+4

代碼添加*字符串* - 這是常見的*字符串連接*行爲。一般的解決方案是將字符串轉換爲數字,然後*然後*添加它們。 – 2013-02-17 20:21:05

+0

這應該是答案@pst – HericDenis 2013-02-17 20:25:33

+0

對不起,感謝您爲我編輯。 – user2073606 2013-02-17 20:25:39

回答

1
if time == '90.00': 
    time = float(time) 
    added = added.getText() 
    if not added == '': 
     added = added.replace(':', '.') 
     added = added.replace('+', '') 
     added = ' '.join(added.split()) 
     added = float(added) 
     time1 = time+added 
     print time1 

float不是在放置操作,float(added)返回added轉換爲float,但不改變added。您不保存返回的值,因此它會跳轉到以太網,並且added仍然是一個字符串。

+0

謝謝你我很愚蠢 – user2073606 2013-02-17 20:28:57

0

問題是您沒有添加數字,而是添加了字符串。在Python中,應用+運營商爲字符串連接它們:

>>> 12 + 34 
46 
>>> '12' + '34' 
'1234' 
>>> 'Hello ' + 'world!' 
'Hello world!' 

@tcaswell使用浮動,而不是字符串除了已經進行了修正。

另一種選擇是使用時間模塊。這樣做的好處是有內置的功能可以將秒轉換成幾分鐘到幾小時等等。