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

あまりにも長い間これを見つめてきたので、私は愚かだと思います。

ありがとう

エヴァン

4

2 に答える 2

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 に変換されてfloat(added)返されますaddedが、変更されませんadded。戻り値を保存しないので、それはイーサに送信されadded、文字列のままです。

于 2013-02-17T20:25:43.750 に答える
0

問題は、数字を追加するのではなく、文字列を追加することです。Pythonでは、+演算子を文字列に適用すると、文字列が連結されます。

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

@tcaswellは、文字列の追加の代わりにfloatを使用した修正をすでに提供しています。

別のオプションは、時間モジュールを使用することです。これの利点は、秒から分、時間などに変換するための組み込み関数があることです。

于 2013-02-17T20:31:19.250 に答える