Я немного запутался в упражнении на Python, которое требует нечувствительного к регистру ввода.Как я могу сделать сравнение строк без учета регистра?
Эта часть, которая путает физические упражнения мне:
Убедитесь, что ваше сравнение чувствительно к регистру. Если «Джон» используется, «ДЖОН» не следует принимать.
Вот мой код:
current_users = ['username_1', 'username_2', 'username_3', 'username_4',
'username_5']
new_user = ['new_user_1', 'new_user_2', 'new_user_3', 'username_1', 'Username_2']
for username in new_user:
if username in current_users:
print("Please enter a new username.")
elif username not in current_users:
print("This username is available.")
Моя проблема заключается в том, что я пытаюсь получить свой код, чтобы отклонить «Username_2» из столицы «U», но я понятия не имею, как это сделать это. Я читаю через Python Crash Course от Eric Matthes, и в настоящее время я нахожусь в главе 5, но я не помню, чтобы учил, как отказываться от регистрозависимых входных данных.
Я знаю строковые методы upper()
, lower()
и title()
, и я попытался с помощью:
username.lower() == username.upper()
new_user.lower() == new_user.upper()
до моего for
цикла, но это только приводит к синтаксической ошибке.
Btw, вы можете заменить 'elif имя пользователя не в current_users:' просто 'else:', потому что он всегда терпит неудачу, если 'username in current_users' возвращает true. – ozgur
Похоже, вам понадобится случай _sensitive_ сравнения для того, чтобы «John» не считался таким же, как «JOHN», и тестирование равенства строк в Python, '==' и 'in' operator _are_ оба случая чувствительны по умолчанию. Это может быть трюк? – martineau