2016-05-18 11 views
-2

ここに新しいプログラマ... python range関数は比較演算子を無視するようです。例えばrange関数が比較演算子を無視しているようです

私は次の関数がある場合、:

def test(x): 
    for i in range(0,6): 
     if i < x: 
      print i 

を私はテスト(3)を実行すると、私の理解では、関数が0,1,2,3をプリントアウトした後に停止すべきであるということです。ただし、0-5を出力します。

これはなぜですか?

+2

repl(コマンドライン)で実行されているコードとその結果を表示できますか?私は文字列 '' 3 "を文字列" 3 "ではなく関数に渡しているのだろうか? –

+2

私はあなたを信じていません。期待どおりに '0,1,2'を出力します。 – miradulo

+1

また、私はそれが0,1,2を印刷することを期待しています。3が3より小さくないので、3を印刷するとは思いません。 –

答えて

1

整数3ではなく、文字列"3"を関数に渡しています。あなたの3はどこから来たのですか?万が一はraw_inputからですか?

歴史上の理由から、python 2では、すべての整数がすべての文字列よりも小さいとみなされます。これらの異なる型は型名の比較に戻ります。"int" < "str"

関連する問題