2016-08-31 2 views
0

Я немного запутался в упражнении на 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 цикла, но это только приводит к синтаксической ошибке.

+0

Btw, вы можете заменить 'elif имя пользователя не в current_users:' просто 'else:', потому что он всегда терпит неудачу, если 'username in current_users' возвращает true. – ozgur

+0

Похоже, вам понадобится случай _sensitive_ сравнения для того, чтобы «John» не считался таким же, как «JOHN», и тестирование равенства строк в Python, '==' и 'in' operator _are_ оба случая чувствительны по умолчанию. Это может быть трюк? – martineau

ответ

4

Вы можете преобразовать каждое новое имя пользователя в нижний регистр и сравнить его с нижней строкой версии списка пользователей (созданной с использованием понимания списка).

lower_case_users = [user.lower() for user in current_users] 
if new_user.lower() in lower_case_users: 
    # Name clash 

Вы можете хранить имена пользователей в нижнем регистре, когда они сначала создается, чтобы не создавать более низкую версию дела из списка пользователей.