Как правильно сделать цикл while на Python и уместен ли он тут
Я написал скрипт для сбора логов СХД NetApp Е5600, внешние данные забираются из Excel файла, а именно: Имя, Rack, SN. Oн работает,но теперь я занимаюсь тюнингом, и не понимаю как при не правильном вводе от пользователя, говорить ему что он ошибся и попытаться снова. Пробовал "While true", но пока успешного результата не добился. Ниже приведена часть кода которая работает, какие поправки мне нужно внести для осуществления задуманного ?
sanName = input('Enter the name of storage system in 07-06 format:
for row in ws.rows:
for cell in row:
if cell.value == sanName:
storage_name = ws.cell(row=cell.row, column=1).value
storage_rack = ws.cell(row=cell.row, column=2).value
storage_unit = ws.cell(row=cell.row, column=5).value
Ответы (1 шт):
Каркас "вечного цикла" примерно следующий:
while True:
something = input()
if <проверка, что с вводом всё хорошо>:
break
В вашем случае у вас if находится внутри двух циклов for поэтому так не получится, break прервёт только самый внутренний цикл. Рекомендую вынести весь этот код в отдельную функцию и при успешной проверке возвращаться из функции через return. Можно и по-другому - делать флаг, выставлять его, проверять внутри обоих for и делать break, но это будет больше кода и код будет более запутанный.
def check_input():
while True:
something = input()
for ...
if <убедились, что ввод был правильный>:
return