0

実行時に出力を解析し、それからの時間を特定の値と比較して差を出力するプログラムが1つありますが、私のやり方では機能しません:

a = 'Time Taken for Response: 31 msec'

time_out = 75

if a.split()[4] > time_out:

    print "time taken is more than given conditions"

    print a.split()[4] 

出力は次のとおりです。

time taken is more than given conditions

31

なぜプログラムがループ自体に入るのか理解できません31 < 75

手がかりやガイダンス???

4

3 に答える 3

6

「31」と75を比較していint(a.split()[4]) > time_out:ます。代わりに試してください。

于 2013-02-22T01:19:08.740 に答える
3

文字列を整数と比較しています。

文字列の 2 進数表現は、10 進数の 2 進数表現よりも大きな 2 進数です。

注:別の回答の情報は、pythonインタープリターについて議論するとき、上記が事実上不正確な説明であることを示しています

のように int に変換する if int(a.split()[4]) > time_out:と、正しい答えが得られます。



ちなみに、python 2 ではなく python 3 を使用している場合、string と int を比較しようとすると、次のエラーが発生します。

TypeError: 順序付けできない型: str() > int()

ユーザーの期待をよりよく満たす

于 2013-02-22T01:22:45.483 に答える
2

分割後、実際には文字列と int を比較しています。残念ながら、これが行うことは、3.0 より前の CPython では完全に奇妙であり、コンテンツやバイナリ表現ではなく、すべてのものの型名に基づいています。Python は文字列と int をどのように比較しますか?を参照してください。

于 2013-02-22T01:24:34.877 に答える