Comparaison de chaînes
Glissez pour afficher le menu
Les comparaisons de chaînes en Python sont sensibles à la casse par défaut. Si la saisie utilisateur peut varier en capitalisation ou inclure des espaces supplémentaires, il est recommandé de normaliser d'abord, puis de comparer. Une méthode simple et fiable consiste à supprimer les espaces et à uniformiser la casse avant toute vérification d'égalité ou de préfixe/suffixe.
Sensible à la casse vs insensible à la casse
Par défaut, "Apple" == "apple" donne False. Pour ignorer la casse, il faut normaliser les deux côtés.
12345# Comparing two email addresses entered with different letter cases email_saved = "Support@Codefinity.com" email_entered = "support@codefinity.COM" print(email_saved.lower() == email_entered.lower()) # True → emails match regardless of case
casefold() est une variante plus puissante et adaptée à l'international de lower(), et constitue un meilleur choix par défaut pour les comparaisons insensibles à la casse.
12345# Comparing international usernames regardless of letter case username_db = "straße" username_input = "STRASSE" print(username_db.casefold() == username_input.casefold()) # True → matches even with special characters
Supprimer les espaces et comparer
Les utilisateurs ajoutent souvent des espaces par inadvertance. Supprimer les espaces en début et en fin de chaîne avant de comparer.
12345# Validating a user's role input from a form user_input = " admin " required_role = "ADMIN" print(user_input.strip().casefold() == required_role.casefold()) # True → matches after cleanup and case normalization
Vérification de préfixe et de suffixe
Utiliser startswith et endswith. Pour des vérifications insensibles à la casse, normaliser d'abord.
123456789# Checking if the uploaded document has the correct format and name uploaded_file = "Report_Final.PDF" # Validate file type (case-insensitive) print(uploaded_file.lower().endswith(".pdf")) # True → valid PDF file # Validate file name prefix (e.g., all reports start with "rep") required_prefix = "rep" print(uploaded_file.strip().casefold().startswith(required_prefix.casefold())) # True → matches prefix ignoring case
Pipeline de normalisation cohérente
Choisir un ordre simple et répétable :
- Supprimer les espaces extérieurs avec
.strip(); - Standardiser la casse avec
.casefold()(ou.lower()si vous préférez) ; - Ensuite, utiliser
==,in,startswith,endswithou d'autres vérifications.
1. Quelle ligne effectue correctement une comparaison d'égalité insensible à la casse ?
2. Étant donné s = " Hello ", quelle expression retourne True pour une comparaison d'égalité insensible à la casse avec "hello" en ignorant les espaces autour ?
3. Quelle affirmation est la plus précise pour une comparaison robuste insensible à la casse ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion