Python проверка имён пользователей
Должно быть так: если имя в списке new_users уже использовалось раньше (есть в списке current_users), то тогда можно выводить сообщение, что нельзя это имя использовать.
В другом случае если не было ранее имя использовано, то тогда должно выводиться, что имя доступно.
current_users = ['Vlad', 'Michael', 'Andry', 'Alex', 'Admin']
new_users = ['Stas', 'Anna', 'Andry', 'Alex', 'Max']
for current_user in current_users:
for new_user in new_users:
if current_user.lower() == new_user.lower():
print(f'имя {new_user} использовалось, выберите другое имя')
else:
print(f'имя {current_user} доступно для регистрации ')
Ответы (2 шт):
Можно попробовать использовать конструкцию if in
old = ['a', 'b', 'c']
new = ['new', 'a', 'b']
for name in new:
if name in old:
print(f'имя {name} использовалось, выберите другое имя')
else:
print(f'имя {name} доступно для регистрации ')
# имя new доступно для регистрации
# имя a использовалось, выберите другое имя
# имя b использовалось, выберите другое имя
Что за in?
in, в зависимости от того, чем является объект после него, проверяет следующее:
Если это строка - происходит проверка на "содержание подстроки" или "вхождение"
print("He" in "Hello") # TrueЕсли это структура по типу список/кортеж и т.д. - происходит проверка на содержание этого элемента
print(1 in [1, 3, 5]) # True
print(2 in [1, 3, 5]) # False
P.S. В словарях проверяется содержание по ключам
print('bar' in {'bar': 13, 'foo': 7}) # True
print('car' in {'bar': 13, 'foo': 7}) # True
Используйте множества, здесь циклы не нужны:
current_users = {'Vlad', 'Michael', 'Andry', 'Alex', 'Admin'}
new_users = {'Stas', 'Anna', 'Andry', 'Alex', 'Max'}
print(f'Имена {new_users.intersection(current_users)} использовались, выберите другое имя')
print(f'Имена {new_users.difference(current_users)} доступны для регистрации ')
Имена {'Andry', 'Alex'} использовались, выберите другое имя
Имена {'Stas', 'Anna', 'Max'} доступны для регистрации
Примечание. Это регистрозависимый вариант. Если нужен регистронезависимое сравнение, можно предварительно перевести все значения в множествах, например, в нижний регистр.