Чтобы восстановить пропущенную строку в программе и обеспечить её правильное выполнение, давайте разберемся с логикой программы и исправим её.
Задача:
Мы имеем списки "белых" и "черных" пользователей. В зависимости от их принадлежности к этим спискам мы предоставляем или закрываем доступ к базе данных. Для пользователей, которые не находятся в черном списке, но и не в белом, даем возможность обратиться к администратору.
Анализ программы:
- Если пользователь находится в
spisok_white, он получает доступ.
- Если в
spisok_black, доступ закрыт.
- Если пользователь не в ни одном из списков, выдаем сообщение о том, что он может обратиться к администратору.
Для начала, мы видим, что строка, которую необходимо восстановить, кажется, относится к тому, чтобы проверить, находится ли введённое имя в списке «белых» пользователей или нет. Поэтому пропущенная строка должна содержать конструкцию, которая проверяет имя.
Исправленный код:
spisok_white = ['A', 'B', 'C', 'D']
spisok_black = ['E', 'F', 'G']
k = 0 # количество вводов не более двух
while True: # Создаем бесконечный цикл для ввода
k += 1
a = input('Введите ваше имя: ')
if a in spisok_white:
print('Добро пожаловать, дорогой {}!'.format(a))
break # Выход из цикла, если доступ предоставлен
elif a in spisok_black:
k = 3 # закрываем доступ, устанавливаем количество попыток в 3
else:
if k == 1:
print('Уважаемый {}, обратитесь к администратору за допуском'.format(a))
p = input('Вы получили допуск? введите ДА или НЕТ: ')
if p == 'ДА':
print('Следующий ввод будет "последним".')
k += 1 # увеличиваем число попыток
else:
print('Данная база вам недоступна')
break # выходим из цикла, если отказ
else:
continue # Обработка повторного ввода, если первая попытка неудачна
Объяснение изменений:
- В условии
if a in spisok_white: происходит непосредственное сравнение входящего имени a с элементами белого списка, и если оно совпадает, пользователь получает доступ.
- Для
elif a in spisok_black: если имя есть в черном списке, доступ автоматически блокируется.
- Для остальных случаев добавлена ветка
else, где дается возможность пользователю получить доступ у администратора, если он не в белом и не в черном списках. Если пользователь отвечает «ДА», то ему разрешено сделать еще одну попытку.
Таким образом, код теперь будет работать согласно заданным условиям.