Как правильно сделать цикл 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 шт):

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

Каркас "вечного цикла" примерно следующий:

while True:
    something = input()
    if <проверка, что с вводом всё хорошо>:
        break

В вашем случае у вас if находится внутри двух циклов for поэтому так не получится, break прервёт только самый внутренний цикл. Рекомендую вынести весь этот код в отдельную функцию и при успешной проверке возвращаться из функции через return. Можно и по-другому - делать флаг, выставлять его, проверять внутри обоих for и делать break, но это будет больше кода и код будет более запутанный.

def check_input():
    while True:
        something = input()
        for ...
            if <убедились, что ввод был правильный>:
                return
→ Ссылка