RimMirK, очень конструктивно. Этот код выводит приглашение 1 раз и сильно проще вашего. У вас PR нигде не меняете и он всегда true, соответственно, тоже чушь.
Коллеги, напрасно ругаетесь :) Оба, предложенных вами способа, работают не так как нужно.
Тут что-то нужно с input делать. Он же принимает символ или строку, с завершающим "Enter", что приводит к переводу строки.
Ах да, я не указал, что решение мне нужно только под Linux.
Я где-то натыкался на пример с getch() для Python, т.е. прсто принимает любой символ и тут же возвращает код в программу, без подтверждения Enter, но в силу ряда причин, мне и это не подходит.
Нужно получить строку, заканчивающуюся Ener, но что бы курсор не упрыгивал на следующую строку., в случае неверного ввода.
Пока я вижу лишь топорное решение:
while True:
i = input("Enter numeric code: ")
try:
i = int(i)
if i < 1 or i > 5: i = 0
break
exeption:
i = 0
os.system("clear")
Разумеется, код не красивый, но его я наброасал даже без проверки, абы оптимизировать это убожество нет ни какого желания