Comment convertir une chaîne de caractères en minuscules en Python 2 et 3

Jinku Hu 10 octobre 2023
  1. Convertir une chaîne de caractères en minuscules en Python 3
  2. Convertir une chaîne de caractères en minuscules en Python 2.7
  3. Conclusion
Comment convertir une chaîne de caractères en minuscules en Python 2 et 3

Convertir une chaîne de caractères en minuscules en Python 3

Le type str puisque Python 3.0 contient par défaut des caractères Unicode, ce qui signifie que toute chaîne comme "unicode example", 'unicode example 2' est stockée en Unicode.

Par conséquent, vous pourriez utiliser str.lower() pour convertir n’importe quelle chaîne en minuscules dans Python 3.

exampleString = "CaseString"
exampleString.lower()
# Out: 'casestring'

exampleString = "СтрокаСлучая"
exampleString.lower()
# Out: 'строкаслучая'

str.casefold() conversion en minuscules

str.lower() convertit la chaîne en minuscules, mais il ne convertit pas les distinctions de casse dans la chaîne.

Par exemple, ß en allemand est égal au double s - ss, et ß lui-même est déjà en minuscule, donc, str.lower() ne la convertira pas.

Mais str.casefold() convertira ß en ss.

>>> 'Straße'.lower()
'straße'
>>> 'Straße'.casefold()
'strasse'

Convertir une chaîne de caractères en minuscules en Python 2.7

Le type str en Python 2.7 n’est pas stocké en Unicode, et les chaînes Unicode sont des instances du type unicode. Nous devons distinguer si la chaîne est une chaîne ASCII ou une chaîne unicode lorsque nous convertissons la chaîne en minuscules.

Type ASCII

Il en est de même avec la méthode utilisée en Python 3. str.lower() convertit la chaîne de caractères en minuscules.

exampleString = "CaseStringExample"
exampleString.lower()
# Out: 'casestringexample'

Type unicode

Si les caractères de la chaîne sont de type Unicode, et que la chaîne n’est pas explicitement représentée en type Unicode, la méthode str.lower() ne convertit pas du tout la chaîne en minuscules.

# python 2.x
exampleString = "СтрокаСлучая"
print exampleString.lower()
#Out: СтрокаСлучая

exampleString.lower() == exampleString
#Out: True

Python fait des objets sur des octets non-ASCII dans une chaîne sans codage donné parce que le codage prévu est implicite.

Utiliser des littéraux Unicode mais pas str

exampleUnicodeString = u"СтрокаСлучая"
exampleUnicode
# u'\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0443\u0447\u0430\u044f'
exampleUnicodeString.lower()
# u'\u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043b\u0443\u0447\u0430\u044f'

print exampleUnicodeString.lower()
# Out: строкаслучая

Vous pouvez voir ici que le premier caractère de la chaîne est converti de \u0421 à \u0441.

Convertissez une str en unicode

Si la chaîne donnée est sous forme de str, nous devons d’abord la convertir en Unicode avant de la convertir en minuscules.

exampleString = "СтрокаСлучая"
print exampleString.decode("utf-8").lower()
# Out: строкаслучая

Conclusion

La méthode lower() est la méthode pour convertir une chaîne de caractères en minuscules à la fois en Python 2 et 3, mais avec une différence notable.

string en Python 3 est la chaîne unicode par défaut, mais la chaîne en Python 2 ne l’est pas. Si la chaîne n’est pas explicitement représentée comme étant de type unicode, par exemple en ne mettant pas u avant la chaîne, la chaîne unicode ne sera pas du tout convertie en minuscules.

Le paramètre str.casefold convertit les distinctions de casse en leurs correspondances sans casse, mais n’est disponible qu’en Python 3. Vous pouvez installer py2casefold en Python 2.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - Python String