chr()
Renvoie le caractère correspondant au code Unicode donné, par ex. chr(65) vaut "A". Fait l’inverse de ord().
- Renvoie
- Une chaîne d’un seul caractère.
Exemple
#print(chr(65), chr(97), chr(233))
print(chr(0x1F40D))
labels = [chr(ord("A") + i) for i in range(4)]
print(labels)Définition et utilisation
#La fonction chr(code) convertit un entier en une chaîne d’un seul caractère, dont le numéro dans le standard Unicode est égal à cet entier. chr(65) vaut "A", chr(97) vaut "a", et chr(233) vaut "é". La conversion inverse, du caractère vers le nombre, est faite par ord().
Unicode attribue un numéro à chaque caractère : aux lettres de tous les alphabets, aux chiffres, aux symboles et aux emoji. Les codes valides vont de 0 à 1 114 111 (en hexadécimal 0x10FFFF), et un nombre hors de cette plage lève une ValueError. Les codes s’écrivent souvent en hexadécimal, par ex. chr(0x1F40D) est l’emoji du serpent.
Les lettres consécutives de l’alphabet latin ont des codes consécutifs, donc chr() combiné avec ord() permet de décaler des lettres, comme dans un chiffre de César, ou de générer des étiquettes de réponses A, B, C, D. Les lettres accentuées se trouvent hors de cette suite, donc ce type de calcul ne les concerne pas.
Syntaxe
#chr(i)Paramètres
#i
int de 0 à 1114111
Le code du caractère dans le standard Unicode.
Plus d’exemples
#def caesar(text, shift):
result = ""
for char in text:
if "a" <= char <= "z":
result += chr((ord(char) - ord("a") + shift) % 26 + ord("a"))
else:
result += char
return result
secret = caesar("python est super", 3)
print(secret)
print(caesar(secret, -3))print("".join(chr(code) for code in range(ord("a"), ord("f") + 1)))
try:
chr(-1)
except ValueError as error:
print(error)Bonnes pratiques
#- Pour vérifier si un caractère est une lettre ou un chiffre, utilisez les méthodes
isalpha()etisdigit()plutôt que de comparer les codes. Elles fonctionnent aussi avec les lettres accentuées. - Un caractère dont vous connaissez le code peut aussi s’écrire directement dans une chaîne :
"\u00e9"vaut"é". - Toutes les lettres minuscules de l’alphabet latin se trouvent dans la constante prête à l’emploi
string.ascii_lowercase, sans avoir besoin dechr().
Entrées associées
#- ord()Renvoie le code Unicode d’un seul caractère, par ex. ord("A") vaut 65. Fait l’inverse de chr().
- str()Convertit une valeur en chaîne.
- int()Convertit une valeur en entier.
- str.isdigit()Vérifie si une chaîne est composée uniquement de chiffres.
- Tranches de chaînes [start:stop:step]Récupération de fragments d’une chaîne par indice.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.