0

これは基本的なことですが、これを機能させることはできません。60 以上を理解していないようで、常にループを回っています。

パイソン 2.7.3

rackNo = 0
while (rackNo > 60) or (rackNo < 1) :
    rackNo = raw_input("Enter the Rack number you are using: ") 
    if (rackNo > 60) or (rackNo < 1) :
        print "Rack number must be between 1 and 60"
4

1 に答える 1

8

raw_input文字列 (から) を整数と比較しています。

最終的には、次のようなものが必要です。

rackNo = int(raw_input("Enter the Rack number you are using: "))

python2.x では、組み込み型間の比較 ( ><) は実装依存です。python3.x では、これらの比較は明示的に禁止されています。

(python2.x ドキュメント)

演算子 <、>、==、>=、<=、および != は、2 つのオブジェクトの値を比較します。オブジェクトは同じタイプである必要はありません。両方とも数値の場合は、共通の型に変換されます。それ以外の場合、異なるタイプのオブジェクトは常に等しくなく、一貫して任意に順序付けられます。非組み込み型のオブジェクトの比較動作を制御するには、特殊なメソッド名セクションで説明されている__cmp__メソッドまたは のような豊富な比較メソッドを定義します。__gt__

(python3.x ドキュメント)

演算子 <、>、==、>=、<=、および != は、2 つのオブジェクトの値を比較します。オブジェクトは同じタイプである必要はありません。両方とも数値の場合は、共通の型に変換されます。それ以外の場合、== および != 演算子は常に異なる型のオブジェクトを等しくないと見なしますが、<、>、>=、および <= 演算子は、指定されたペアに対してこれらの演算子を実装していない異なる型のオブジェクトを比較すると、TypeError を発生させます。タイプの。のような豊富な比較メソッドを定義することにより、非組み込み型のオブジェクトの比較動作を制御できます。これ__gt__()については、基本的なカスタマイズのセクションで説明しています。

于 2013-03-22T20:03:02.447 に答える