Пользователь ввел целое число с помощью оператора while

#python

#python

Вопрос:

Хорошо, нужно понять, почему мой код не работает. На данный момент он застревает в бесконечном цикле запроса у пользователя PIN-кода после ввода неправильного PIN-кода.

Я полагаю, что я каким-то образом испортил оператор while.

 def inputValidator():
    userInput = requestInteger("Please input a PIN between 1 - 1000")
    while 1 > userInput > 1000 : 
        requestInteger("Your PIN is not within 1 - 1000, please try again")
    print("Thanks! your new PIN is "   str(userInput))
  

спасибо за помощь, ребята!

Ответ №1:

Попробуйте это:

 def inputValidator():
    userInput = requestInteger("Please input a PIN between 1 - 1000")
    while userInput<1 or userInput>1000:
        userInput = requestInteger("Your PIN is not within 1 - 1000, please try again")
    print("Thanks! your new PIN is "   str(userInput))
  

Вам потребуется новый ввод от вашего пользователя, если userInput он меньше 1 или больше 1000 — и, как сказала @Polina F., вы не присвоили новое значение userInput внутри цикла while. Вот почему он зацикливается навсегда.

Ответ №2:

Вы ничего не назначаете в цикле while. userInput никогда не обновляется — следовательно, вы не можете выйти из цикла

Ответ №3:

вы не назначаете requestInteger для userInput

 while 1 > userInput > 1000 : 
  userInput =requestInteger("Your PIN is not within 1 - 1000, please try again")