У меня есть скрипт на python, где мы получаем данные от пользователя USER (в окне команд нет необходимости в окне GUI на этом этапе).
как только пользователь вводит данные, предоставленные данные должны быть проверены, и, если они введены в неправильном формате, их необходимо запрашивать снова и снова, пока они не будут правильными.
Часть скрипта, где вводится и проверяется пользовательский ввод, приведена ниже и работает абсолютно нормально.
SOname = '1' #something that doesn't validate
while True:
SOname = input("Please enter the order number: ").upper()
if not re.match(r"\b[A-Z]{2}[-][0-9]{6}\b", SOname):
print ("Error! Please enter order in format 'AS-XXXXXX'"
else:
break
После выполнения этого условия номер заказа используется в дальнейшем для выполнения множества операций.
Тем не менее, завершение остальной части программы занимает 2 минуты (это требует большого количества копий файлов, чтения PDF и т. Д.), И я не хочу, чтобы пользователь продолжал ждать завершения программы и снова начал вводить другой номер заказа .
Итак, я хочу предоставить возможность ввода нескольких номеров заказов, разделенных пробелами (например: они могут вводить 5 номеров заказов и работать над чем-то другим, пока программа python работает в течение 10-12 минут).
И так же, как для одного номера заказа, каждая из записей должна быть проверена по вышеупомянутым критериям, и каждый номер должен пройти через остальную часть программы.
Здесь я терплю неудачу.
Я написал небольшую программу, чтобы проверить, все ли элементы проходят через цикл, и это не так, и я не могу понять, почему.
user_input = input("Enter Numbers:")
Ui = user_input.split()
for i in range(len(Ui)):
if i == 2:
print(i)
else:
print ("tada")
Если ввести значения "2 4 2 4 2 4", я получу вывод "
тада
тада
2
тада
тада
тада "
это даже не имеет смысла для меня. он печатает 2 раза, но на входе есть 3 2. Что я делаю неправильно?
Как сделать ввод, чтобы пройти проверку, а затем через остальную часть программы.
А также, в случае, когда пользователь запустил программу, но не хочет вводить , как завершить сценарий, нажав клавишу Esc ?? Я смотрел во многих местах, но у меня ничего не работает.