0

以下のpythonコードでは

    var=input("Enter a number between 1 to 10:")
    if (var==1 or var==2 or var==3 or var==4 or var==5):
          print ('the entered number is between 1 to 5')
    elif (var==6 or var==7 or var==8 or var==9 or var==10):
          print ('The entered number is between 5 to 10')
    else:
          print ('Wrong value exiting!!')

ターミナルで実行すると〜$ python name.py

1 ~ 10:3 の数値を入力してください

入力された数字は 1 から 5 の間です

ターミナルで実行すると〜$ python3 name.py

1 ~ 10:3 の数値を入力してください

間違った値が出ています!!

違いは何ですか?& python3` でコンパイルしたときに正しい出力を得るには、何を変更する必要がありますか?


すべての数値に「または」 を使用する代わりに、より簡単な比較方法はありますか?

4

2 に答える 2

4

Python 2 の場合:

var=input("Enter a number between 1 to 10:")

上記は式を評価するためvar、数値に等しい可能性があります。(そして、メモは本当に避けるべきです)

Python 3 ではinput、同等です。Python 2 ではofraw_inputであるため、文字列を返します。数値であると予想される場合var = int( input("...") )は、変換エラーが発生する可能性があることに注意する必要があります。

演算子がありinます:

if var in (1, 2, 3, 4, 5):
    pass
elif var in (6, 7, 8):
    pass
else:
    pass

または、Between 操作が必要な場合は、Python ロジック システムを利用できます。

if 1 <= var <= 5:
    pass
于 2012-10-20T15:06:21.277 に答える
2

inputこれは、Python 3.xの使用によるものだと思いますraw_input。Python 2.x と同じです。つまり、整数ではなく文字列に変換されます。比較については、次を使用してみてくださいrange

var=int(input("Enter a number between 1 to 10:"))

if var in range(1, 6):
      print ('the entered number is between 1 to 5')
elif var in range(6,11):
      print ('The entered number is between 5 to 10')
else:
      print ('Wrong value exiting!!')
于 2012-10-20T15:05:15.673 に答える