Задать вопрос
wolverine777
@wolverine777

Как выйти из цикла while?

Привет, у меня примитивная задача но почему-тоне выходит выйти из цикла

Нужно чтобы position была от 1 до 9, и чтобы простое нажатие Enter тоже не подходило.

position=input("Choose a position: ")
    
       
while position not in list(range(1, 10)) or position=="" :
        print("ONLY between 1 and 9: ")
        position=input("Choose a position: ")
        
        
position=int(position)  
    
print(f'chosen position is {position}')


Почему-то даже когда нажимаю от 1 до 9 цикл продолжает работать.

Спасибо
  • Вопрос задан
  • 210 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@dmshar
Очень сложно понять, что вы хотели написать, особенно учитывая небрежное форматирование кода.
Судя по фразе
"Почему-то даже когда нажимаю от 1 до 9 цикл продолжает работать." вы хотите, что-бы при вводе чисел в диапазоне от 1 до 9 вы заканчивали цикл. А при вводе цифр вне этого диапазона или нажатии Enter пользователю предлагалось дальше вводить числа.
Тогда это должно выглядеть вот так

while position not in [str(x) for x in range(1,10)] or position=="" :
        print("ONLY between 1 and 9: ")
        position=input("Choose a position: ")       
position=int(position)  
print(f'chosen position is {position}')


Ни и протокол работы
Choose a position: 0
ONLY between 1 and 9: 
Choose a position: 10
ONLY between 1 and 9: 
Choose a position: 
ONLY between 1 and 9: 
Choose a position: 5
chosen position is 5:
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TriKrista
Походу у вас код коряво отформатирован.
Ну и преобразовать тип в начале забыли.

Вот рабочий код:
position=input("Choose a position: ")
position=int(position)
       
while position not in list(range(1, 10)):
    print("ONLY between 1 and 9: ")
    position=input("Choose a position: ")
    position=int(position)
    
    print(f'chosen position is {position}')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы