2

重複の可能性:
Python は string と int をどのように比較しますか?

今日、Python で奇妙な比較に出くわしました。これが私が見つけたものです:

'101' > -1
True

'101' < -1
False

'101' > 100
True

'101' < 100
False

'101' < 1
False

これらの式が何をテストしているのかわかりません。どんなヒントも役に立ちます。

4

3 に答える 3

2

言語リファレンスから:

演算子 <、>、==、>=、<=、および != は、2 つのオブジェクトの値を比較します。オブジェクトは同じタイプである必要はありません。両方とも数値の場合は、共通の型に変換されます。それ以外の場合、異なるタイプのオブジェクトは常に等しくなく、一貫して任意に順序付けられます。

于 2012-08-30T10:54:46.420 に答える
0

数値型と非数値型を一緒に比較する場合、どちらかの変数の値が何であれ、式が真になるためには数値型が最初に来る必要があります。

Python で互換性のない 2 つの型を比較す​​ると、型の名前がアルファベット順に比較されます。詳細については、この質問を参照してください。

なぜこの表現をこれまでにテストする必要があるのか​​ わかりません。おそらく、それらはタイプをチェックするために使用されるかもしれません。

foo < bar が true で、bar が数値変数ではないことがわかっている場合、foo は数値でなければならず、計算などで使用できます。

于 2012-08-30T11:03:24.350 に答える
0

数値型と非数値型を注文すると、数値型が先になります。

于 2012-08-30T10:54:15.043 に答える