1

まず、私は最近プログラミングを始めたので、あまり上手ではありません。これは私の問題です:

x = int(input("Write a number between 1-100: "))
while x > 100:
    x = int(input("The number must be less than 101: "))
while x < 1:
    x = int(input("The number must be higher than 0: "))
else:
    print ("The number is:",x)

これを行うことでコードをごまかす方法があります。

Write a number between 1-100: 101
The number must be less than 101: 0
The number must be higher than 0: 101
The number is: 101

私は基本的に、ユーザーが 100 より大きいまたは 1 より小さい数値を書き込めるようにしたくありません。

説明が下手で申し訳ありませんが、最善を尽くしました。もう一度言いますが、最近プログラミングを始めました。

4

3 に答える 3

3

私は次のようにします:

x = int(input("Enter a number in the range [1, 100]: "))
while not (1 <= x <= 100):
    x = int(input("That number isn't in the range [1, 100]!: "))
else:
    print ("The number is:",x)

もちろん、次のように、ネストされた if ステートメントを使用して、プロンプトでエラーをよりわかりやすくすることができます。

x = int(input("Enter a number in the range [1, 100]: "))
while not (1 <= x <= 100):
    if x > 100:
        x = int(input("The number must be less than 101: "))
    else:
        x = int(input("The number must be greater than 0: "))
else:
    print ("The number is:",x)

一度に複数の条件をテストできることを覚えておいてください!

于 2013-09-15T18:34:42.430 に答える
2

logicalorを使用して、単一の で両方の条件をテストしますwhile

while not 1 <= x <= 100:  
    x = int(input("The number must be in range [1, 100]: "))

これによりwhile、ユーザーが 1 未満または 100 を超える入力を入力するまでループが繰り返されます。また、ユーザーが無効な入力を入力し続けると、無限ループが発生することにも注意してください。この問題を解決する方法を理解させます。

于 2013-09-15T18:26:12.927 に答える
1

Python では、他のプログラミング言語とは異なり、a < b < c のような式は、数学で慣習的な解釈をしています。whileこれは、次のように -loopを記述できることを意味します。

x = int(input("Write a number between 1-100: "))
while not 1 <= x <= 100:
    x = int(input("The number must be in the range 1-100: "))
else:
    print ("The number is:", x)
于 2013-09-15T18:34:27.487 に答える