繁体   English   中英

加数字会导致奇怪的结果-例如“ 90.005.25”

[英]Adding numbers results in strange result - e.g. “90.005.25”

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

我想我很傻,一直盯着这个呆了太久。

谢谢

埃文

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仍然是一个字符串。

问题是您没有添加数字,而是添加了字符串。 在Python中,将+运算符应用于字符串将它们连接起来:

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

@tcaswell已经提供了使用float而不是字符串添加的修复程序。

另一种选择是使用时间模块。 这样的好处是,它具有内置功能,可以执行将秒转换为分钟到数小时之类的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM