2013-02-17 47 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使用浮动,而不是字符串除了已经进行了修正。

另一种选择是使用时间模块。这样做的好处是有内置的功能可以将秒转换成几分钟到几小时等等。