Python, введение числа из заданного диапазона

Как сделать так что бы пользователь ввел переменную из заданного диапазона от 1 до 8. А если она не из заданного диапазона ошибка выдавалась и пользователь должен ввести переменную заново, и так, до тех пор пока переменная не будет удовлетворять данному диапазону.


Ответы (4 шт):

Автор решения: RomanR

В переменной a лежит строка из требуемых символов, проверяем пока не введут правильный

a = "12345678"
n = input("Нужно число от 1 до 8: ")
while n not in a:
    print("Нет, Вы ошиблись")
    n = input("Нужно число от 1 до 8: ")
print("Наконец то: ", n)
→ Ссылка
Автор решения: Danis
while True:
    try:
        n = int(input('> ')) 
        if n >= 1 and n <= 8:
            break
        else:
            print('Please enter n ∈ [1;8]!')
    except ValueError:
        print('Please enter number')
print(n) 
→ Ссылка
Автор решения: Victor VosMottor

Просто прикольно:

pip3 install getch
from getch import getch
while True:
    try:
        n = int(getch())
    except:
        pass
    if n >= 1 and n <= 8:
        print(n)
        break
→ Ссылка
Автор решения: Kirill Petrov

как вариант можно приводить все значения меньше диапазона к минимульному допустимому значению, а все значения больше, к максимальному допустимому a = max(min(int(input("введи число от 1 до 8: ) " )),8),1) print(a)

→ Ссылка