Python >> Tutoriel Python >  >> Python

Python est-il sensible à la casse ?

En savoir plus sur la sensibilité à la casse en Python.

Lorsque vous apprenez un nouveau langage de programmation, l'une des choses les plus fondamentales auxquelles vous pensez est de savoir s'il est sensible à la casse. Python ne fait pas exception - la sensibilité à la casse est un facteur important. Vous vous demandez probablement si Python est sensible à la casse si vous êtes nouveau dans le langage. Découvrons !

Oui, Python est un langage sensible à la casse

Tout d'abord, clarifions ce qu'est la sensibilité à la casse. C'est la différenciation entre les lettres minuscules et majuscules. Il peut s'agir non seulement d'un langage de programmation, mais aussi de tout programme informatique.

La réponse la plus courte à la question de la sensibilité à la casse en Python est oui. C'est un langage sensible à la casse, comme de nombreux autres langages de programmation populaires tels que Java, C++ et JavaScript. La sensibilité à la casse en Python augmente le nombre d'identificateurs ou de symboles que vous pouvez utiliser.

Nous explorons les différents aspects de Python en tant que langage sensible à la casse dans cet article.

 Noms sensibles à la casse en Python

L'exemple le plus courant de sensibilité à la casse en Python concerne les noms de variables. username , UserName , et userName sont trois variables différentes et l'utilisation de ces noms de manière interchangeable provoque une erreur. La même règle s'applique aux noms de fonctions.

>>> user_name = 'User1'
>>> print(User_name)

Le code ci-dessus provoque une erreur à cause de l'incohérence des lettres majuscules et minuscules dans les noms de variables :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'User_name' is not defined

Vous pouvez voir l'utilisation correcte des noms de variables sensibles à la casse dans l'exemple ci-dessous :

>>> user_name = 'User2'
>>> print(user_name)
User2

Pour éviter les problèmes avec les fonctions sensibles à la casse et les noms de variables, utilisez des noms en minuscules avec des traits de soulignement entre les mots pour plus de lisibilité (par exemple, user_name ) comme indiqué dans la documentation officielle de Python. Vous pouvez vous entraîner dans notre piste Python Basics ou en savoir plus sur les meilleures pratiques Python si vous connaissez déjà les bases.

Les noms de constantes en Python sont une exception à ces conventions de nommage. Ils sont souvent en majuscules afin que vous puissiez distinguer facilement une constante d'une variable. Les classes sont une autre histoire - leurs noms sont généralement écrits en casse Pascal, ce qui signifie que chaque mot commence par une majuscule. Aucun trait de soulignement ne doit être utilisé dans les noms de classe :par exemple, AppFactory .

Python a été conçu pour être très lisible, et il est important de le garder ainsi. Évitez toute confusion dans votre code en utilisant des conventions de dénomination cohérentes et en évitant les noms difficiles à distinguer les uns des autres (comme la lettre majuscule 'I ' et la minuscule 'l '). Utilisez des noms descriptifs mais gardez-les aussi courts que possible.

 Mots clés Python sensibles à la casse

Les mots-clés sont une autre partie importante de la syntaxe Python qui est sensible à la casse. Juste un petit rappel :les mots-clés en Python sont des mots spéciaux qui ont une certaine signification pour l'interpréteur. Leur utilisation est restreinte; vous ne pouvez pas les utiliser comme noms de variables ou de fonctions.

for i in range(1, 10):
	if i == 5:
		continue
	print(i)

Comme vous pouvez le voir dans l'exemple de code ci-dessus (les mots-clés Python sont en gras), la majorité des mots-clés Python sont en minuscules. Les autres mots clés courants sont def , import , is , not , return , et with , mais il y en a bien d'autres.

Il y a quelques exceptions - seulement trois, en fait. Ils sont True , False , et None .

Même les plus petits changements de casse dans les mots-clés Python provoquent une erreur comme dans l'exemple ci-dessous :

>>> For i in range(1, 10):
  File "<stdin>", line 1
    For i in range(1, 10):
        ^
SyntaxError: invalid syntax

Vous pouvez pratiquer tous les mots-clés Python les plus courants sur LearnPython.com, en particulier dans les pistes Python Basics et Learn Programming with Python.

Pouvons-nous rendre Python insensible à la casse ?

Il y a des moments où ce serait plus facile si Python était insensible à la casse. Imaginez une situation où les clients recherchent un certain produit dans une boutique en ligne. Disons qu'ils sont intéressés par les designs finlandais et recherchent le vase d'Alvar Aalto. Que tapent-ils dans le champ de recherche ? Peut-être:"vase Alvar Aalto", mais très probablement "vase alvar aalto". Dans tous les cas, ils doivent renvoyer les mêmes résultats de recherche.

Nous devons tenir compte de la sensibilité à la casse en Python lors de la comparaison de chaînes. Mais ne vous inquiétez pas ! Python est un langage de programmation polyvalent et possède des méthodes intégrées utiles pour faciliter la vie des programmeurs. Cela est également vrai lorsqu'il s'agit de comparaisons insensibles à la casse.

Approche n° 1 :méthode Python String lower()

Il s'agit de l'approche la plus populaire pour les comparaisons de chaînes insensibles à la casse en Python. Le lower() convertit tous les caractères d'une chaîne en minuscules, ce qui facilite la comparaison de deux chaînes. L'exemple de code montre comment le lower() la méthode fonctionne.

english_eels = 'My Hovercraft Is Full of Eels'
other_english_eels = 'My HoVeRcRaFt Is FuLl Of EeLs'

if english_eels.lower() == other_english_eels.lower():
	print('Identical strings:')
	print('1.', english_eels.lower())
	print('2.', other_english_eels.lower())
else:
	print('Strings not identical')

Sortie :

Identical strings:
1. my hovercraft is full of eels
2. my hovercraft is full of eels

Approche n° 2 :méthode Python String upper()

Cette méthode est également populaire pour les comparaisons insensibles à la casse en Python. Il change tous les caractères d'une chaîne en caractères majuscules. Regardez l'exemple de code ci-dessous :

polish_eels = 'Mój poduszkowiec jest pełen węgorzy'
other_polish_eels = 'MóJ pOdUsZkOwIeC jEsT pEłEn WęGoRzY'
if polish_eels.upper() == other_polish_eels.upper():
	print('Identical strings:')
	print('1.', polish_eels.upper())
	print('2.', other_polish_eels.upper())
else:
	print('Strings not identical')

Sortie :

Identical strings:
1. MÓJ PODUSZKOWIEC JEST PEŁEN WĘGORZY
2. MÓJ PODUSZKOWIEC JEST PEŁEN WĘGORZY

Approche n° 3 :méthode Python String casefold()

Utilisation du casefold() est l'approche la plus puissante et la plus agressive pour la comparaison de chaînes en Python. C'est similaire à lower() , mais il supprime toutes les distinctions de casse dans les chaînes. C'est un moyen plus efficace d'effectuer des comparaisons insensibles à la casse en Python.

german_eels = 'Mein Luftkißenfahrzeug ist voller Aale'
other_german_eels = 'MeIn LuFtKißEnFaHrZeUg IsT vOlLeR AaLe'
if german_eels.casefold () == other_german_eels.casefold ():
	print('Identical strings:')
	print('1.', german_eels.casefold())
	print('2.', other_german_eels.casefold())
else:
	print('Strings not identical')

Sortie :

Identical strings:
1. mein luftkissenfahrzeug ist voller aale
2. mein luftkissenfahrzeug ist voller aale

Comme vous pouvez le voir dans l'exemple de code, le casefold() la méthode a non seulement changé tous les caractères en minuscules, mais a également changé la minuscule 'ß ' lettre à 'ss '.

Si vous avez besoin d'en savoir plus sur les chaînes, consultez ce cours adapté aux débutants sur l'utilisation des chaînes en Python.

Naviguez facilement dans la sensibilité à la casse Python

J'espère que les aspects les plus importants de la sensibilité à la casse Python ne sont plus un mystère pour vous. Vous êtes maintenant familiarisé avec certaines bonnes pratiques de dénomination sensibles à la casse en Python. Vous savez maintenant également comment ignorer la casse en Python pour les comparaisons de chaînes insensibles à la casse.

Alors, êtes-vous prêt pour de nouvelles aventures Python ? Peut-être souhaitez-vous explorer les raisons pour lesquelles les data scientists utilisent Python. Ou, si vous commencez tout juste à apprendre à coder, cet article vous présente la programmation.