Comparaison de Chaînes de Caractères
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 convient de normaliser d'abord, puis de comparer. Une méthode simple et fiable consiste à supprimer les espaces et à standardiser 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, 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 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 des préfixes et suffixes
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
Adopter un ordre simple et reproductible :
- Supprimer les espaces extérieurs avec
.strip(); - Standardiser la casse avec
.casefold()(ou.lower()si vous préférez) ; - Utiliser ensuite
==,in,startswith,endswithou d'autres vérifications.
1. Quelle ligne effectue correctement une vérification d'égalité insensible à la casse ?
2. Étant donné s = " Hello ", quelle expression retourne True pour une vérification d'égalité insensible à la casse avec "hello" en ignorant les espaces autour ?
3. Quelle affirmation est la plus précise pour une comparaison insensible à la casse robuste ?
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
Génial!
Completion taux amélioré à 3.45
Comparaison de Chaînes de Caractères
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 convient de normaliser d'abord, puis de comparer. Une méthode simple et fiable consiste à supprimer les espaces et à standardiser 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, 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 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 des préfixes et suffixes
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
Adopter un ordre simple et reproductible :
- Supprimer les espaces extérieurs avec
.strip(); - Standardiser la casse avec
.casefold()(ou.lower()si vous préférez) ; - Utiliser ensuite
==,in,startswith,endswithou d'autres vérifications.
1. Quelle ligne effectue correctement une vérification d'égalité insensible à la casse ?
2. Étant donné s = " Hello ", quelle expression retourne True pour une vérification d'égalité insensible à la casse avec "hello" en ignorant les espaces autour ?
3. Quelle affirmation est la plus précise pour une comparaison insensible à la casse robuste ?
Merci pour vos commentaires !