2016-08-31 2 views
0

Ich bin ein wenig verwirrt in Bezug auf eine Python-Übung, die eine Eingabe ohne Berücksichtigung der Groß-/Kleinschreibung erfordert.Wie kann ich Vergleiche zwischen Groß- und Kleinschreibung vornehmen?

Dieser Teil der Übung, die mich verwirrt:

Achten Sie darauf, Ihren Vergleich Groß- und Kleinschreibung ist. Wenn "John" verwendet wurde, sollte "JOHN" nicht akzeptiert werden.

Hier ist mein Code:

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.") 

Mein Problem ist, dass ich versuche, meinen Code zu bekommen, um „USERNAME_2“ ablehnen, weil der Hauptstadt „U“, aber ich habe keine Ahnung, wie zu tun Dies. Ich lese durch Python Crash Course von Eric Matthes und bin derzeit auf Kapitel 5, aber ich erinnere mich nicht gelehrt werden, wie die Groß-und Kleinschreibung insensitive Eingänge noch abzulehnen.

Ich kenne die upper(), lower() und title() String-Methoden, und ich versuchte mit:

username.lower() == username.upper() 

new_user.lower() == new_user.upper() 

vor meiner for Schleife, aber dies führt nur zu einem Syntaxfehler.

+0

Btw, können Sie ersetzen 'elif Benutzername nicht in current_users:' mit nur 'else:' weil es immer fehlschlägt, wenn 'Benutzername in Current_users' True zurückgibt. – ozgur

+0

Scheint so, als würden Sie case _sensitive_ comparies benötigen, damit 'John' nicht als 'JOHN' betrachtet wird - und Python String-Gleichheitstest, '==', und 'in' operator _are_ sind beide Groß- und Kleinschreibung. Könnte es eine Trickfrage sein? – martineau

Antwort

4

Sie können jeden neuen Benutzernamen in Kleinbuchstaben umwandeln und ihn mit einer Kleinbuchstabenversion der Benutzerliste vergleichen (erstellt mit einem Listenverständnis).

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

Möglicherweise möchten Sie Ihre Benutzernamen in Klein speichern, wenn sie zum ersten Mal aus der Benutzerliste erstellt werden, zu vermeiden, dass eine untere Gehäuseausführung zu schaffen.

Verwandte Themen