Python >> Tutoriel Python >  >> Python

Qu'est-ce que la fonction Python ord() ? Comment l'utilisez-vous?

Vous travaillez avec des caractères Unicode ? Vous aurez besoin du Python ord() et chr() fonctions. Découvrez ce que chacun fait et pourquoi vous devriez les utiliser en lisant cet article.

Dans cet article, nous examinerons plusieurs exemples de conversion d'un caractère en son code Unicode à l'aide de la fonction ord() de Python. Nous passerons également en revue Unicode et Python chr() fonction. Alors commençons !

Principes de base d'Unicode

Les ordinateurs, dans leur forme la plus fondamentale, fonctionnent avec des nombres. Sous le capot, les caractères et les lettres d'un écran sont encodés sous la forme d'une liste d'entiers.

Avant Unicode, il existait des centaines de techniques de codage de caractères distinctes pour attribuer ces numéros. Ces premiers encodages de caractères étaient de taille limitée et ne pouvaient pas prendre en charge toutes les langues du monde. Le consortium Unicode a été créé pour résoudre ce problème. Unicode attribue à chaque caractère un numéro unique, permettant à un programmeur de créer des chaînes avec différents caractères provenant de différentes langues, y compris des emojis et d'autres caractères spéciaux.

Les chaînes (alias valeurs de texte) sont un type de données fondamental dans la programmation, et vous rencontrerez probablement de nombreux problèmes qui peuvent être résolus à l'aide de chaînes et d'Unicode. Par conséquent, nous vous recommandons de consulter notre cours interactif sur Travailler avec des chaînes en Python. Si vous êtes un débutant complet, notre cours Python Basics vous aidera à démarrer avec Python.

Que fait le ord() Fonction faire ?

En Python, le ord() La fonction renvoie le code Unicode d'un caractère. Cette fonction prend un texte de longueur unitaire comme argument et renvoie l'équivalent Unicode du paramètre spécifié. Lorsque l'argument est un objet Unicode, le ord() de Python renvoie un entier correspondant au point de code Unicode du caractère (ou la valeur de l'octet lorsque l'argument est une chaîne de 8 bits).

En savoir plus sur Unicode

Les programmes informatiques d'aujourd'hui doivent être capables de gérer un large éventail de caractères. En raison de la globalisation des applications, le même message peut devoir être affiché dans plusieurs langues; par exemple, une application peut avoir besoin d'afficher un message en russe, anglais, français et japonais. Chacune de ces langues peut être utilisée pour créer du contenu Web avec de nombreux caractères, emojis et autres symboles différents. string de Python type représente des caractères utilisant la norme Unicode, permettant aux programmes Python d'interagir et de traiter tous ces caractères.

La norme Unicode tente de répertorier tous les caractères utilisés dans les langues humaines ; il attribue à chaque caractère un numéro de code unique. Les spécifications Unicode sont régulièrement modifiées et mises à jour pour s'adapter aux nouveaux langages et symboles.

Un caractère est le plus petit composant textuel :'A', 'B', 'C' etc. sont tous des caractères différents. Les caractères en Unicode diffèrent selon la langue ou le contexte en question. Par exemple, le caractère du chiffre romain un (𐌠) ressemble à la lettre majuscule "I". Mais ce sont deux caractères distincts avec des significations assez différentes.

La norme Unicode spécifie comment les points de code sont utilisés pour représenter les caractères. Une valeur de point de code est un entier compris entre 0 et 0x10FFFF (environ 1,1 million de valeurs ; le nombre réel actuellement attribué est inférieur à cela). Ainsi, par exemple, le point de code U+265E désigne le caractère ♞ avec la valeur 0x265e dans la norme (9 822 en décimal). De même, le caractère "\" a le point de code U+005C, avec une valeur 0x05c en standard (92 en décimal).

Unicode est devenu un standard dans de nombreux langages de programmation aujourd'hui, et de nombreux langages (dont Python) l'utilisent pour représenter des chaînes. De plus, il est utilisé par tous les fournisseurs de logiciels modernes et les développeurs de logiciels comme un moyen sûr de traiter n'importe quelle chaîne d'entrée.

Comment utiliser le ord() Fonction en Python

La fonction ord() en Python est utilisée pour convertir un seul caractère Unicode en son équivalent entier. La fonction accepte n'importe quel caractère de chaîne unique et renvoie un entier. Cette méthode a la syntaxe suivante :

ord(x)

Ici x représente n'importe quel caractère Unicode.

Maintenant, regardons notre premier exemple utilisant cette méthode :

# Converting Unicode to Int Using ord()
character = 'd'

print(ord(character)) 

Output: 100

Le print() La fonction est utilisée pour afficher la valeur de notre caractère Unicode. Si le processus ne vous semble pas familier, vous pouvez en savoir plus à ce sujet dans cet article sur la fonction d'impression Python. Il convient de noter que les guillemets simples et doubles fonctionneront ; ‘d’ et “d” peut être l'argument du ord() fonction.

# Converting Unicode to Int Using ord()
character = “d”

print(ord(character))

Output: 100

Regardons aussi un exemple du ord() fonction avec un caractère qui n'est pas dans l'alphabet latin - par exemple, le signe dollar :

# Converting Unicode to Int Using ord()
character = '$'

print(ord(character)) 

Output: 36

Si la longueur de la chaîne est supérieure à 1, une TypeError sera levée :

# Converting Unicode to Int Using ord()
character = 'data'

print(ord(character))

Output: TypeError: ord() expected a character, but string of length 4 found

Nous pouvons voir qu'en utilisant le ord() méthode avec plus d'un caractère provoque un TypeError . Cela se produit car la fonction n'accepte qu'un seul caractère en entrée. Pour résoudre ce TypeError , nous devons boucler sur chaque caractère de la chaîne. Étant donné que les chaînes Python sont des objets itérables, nous pouvons facilement itérer sur ces valeurs de chaîne :

string = 'data'
for letter in string:
    print(ord(letter))

Output:
100
97
116
97

Un point important à noter est que les 128 premiers points Unicode sont les mêmes que les valeurs ASCII. Cela signifie essentiellement que les caractères et leurs valeurs ASCII correspondantes seront équivalents à la même valeur Unicode.

Par exemple :

character = ‘9’
print("ASCII value of 9 =", ord(character))

Output: ASCII value of 9 = 57

La valeur ASCII pour le caractère ‘9’ a 57 ans ; comme vous pouvez le voir, cela équivaut également à sa valeur en points Unicode.

Si cela semble écrasant, ne vous inquiétez pas; nous avons ce qu'il vous faut. Comme le dit le vieil adage, la pratique rend parfait, nous vous recommandons donc de consulter cet article pour apprendre les meilleures façons de pratiquer Python. Si vous souhaitez aller plus loin et mettre en pratique vos compétences en Python, nous vous recommandons fortement de consulter le cours interactif de LearnPython.com, Python Practice:Word Games. Cela vous aidera à pratiquer le ord() et chr() fonctions et améliorez votre travail avec Unicode. Si vous souhaitez en savoir plus sur le cours, consultez cet article sur la pratique Python de LearnPython :jeux de mots.

Le chr() Fonction

Le Python chr() transforme une représentation entière en son caractère de chaîne Unicode équivalent. En d'autres termes, c'est l'opposé du ord() fonction. Cette fonction prend n'importe quel nombre entre 0 et 1 114 111 pour représenter tous les caractères Unicode.

La syntaxe du chr() de Python fonction est la suivante :

chr(i)

i est un entier, représentant un point de code Unicode d'un caractère.

Exemple :

result = chr(102)

print(result) 

Output:  f

Si une valeur en dehors de la plage mentionnée ci-dessus est passée dans la fonction, la fonction lèvera un ValueError . Voyons à quoi cela ressemble :

result = chr(1114115)

print(result)

Output: ValueError: chr() arg not in range(0x110000)

Cette fonction prend également une seule valeur; pour convertir beaucoup d'entiers, il va falloir itérer sur toutes les valeurs :

integers = [100, 97, 116, 97, 103, 121]

for integer in integers:
   print(chr(integer))

# Output:
d
a
t
a

Nous pouvons aller plus loin et transformer cette liste de nombres en une chaîne Python. Cela correspond à notre texte, 'data' , que nous avons transformé en Unicode dans l'exemple précédent. Nous pouvons utiliser le .join() méthode pour le faire :

integers = [100, 97, 116, 97, 103, 121]
result = list() # Initializing an empty list

for integer in integers:
   result.append(chr(integer)) # adding characters to a result array

Final = ‘’.join(result)

print(result) 

Output: data

Au-delà de chr() et ord() en programmation Python

Dans l'industrie de la programmation, la norme Unicode a été révolutionnaire. Chaque caractère se voit attribuer une valeur numérique, des lettres aux symboles en passant par les emojis. De plus, la norme a permis aux ordinateurs de comprendre beaucoup plus facilement les symboles, d'autant plus que davantage de caractères ont été ajoutés à Internet.

Nous avons beaucoup appris sur le ord() de Python fonction dans ce tutoriel. Chaque caractère a une valeur Unicode unique, et le ord() La fonction peut être utilisée pour vérifier les valeurs numériques ou les caractères spéciaux. Nous avons également découvert le chr() fonction, qui est l'opposé du ord() fonction. Et nous avons vu plusieurs exemples pour aider à solidifier les deux concepts.

Maintenant, tout ce que vous avez à faire est de vous entraîner à utiliser chr() et ord() en Python. Nous vous recommandons fortement de consulter le cours Python’s Practice:Word Games de LearnPython et de commencer votre parcours pour devenir un maître Python.