Bonjour,
Je comprend mal quelque chose avec la fonction chr()
Ainsi, on a :
Et pour la réciproque, on a :
D'après ce que j'ai compris, chr(int) retourne la lettre dont on a indiqué le n° dans la table ASCII.
Mais pourquoi, dans le premier cas, n'a t-on pas '1' tout simplement (on a bien 'g' qui est de lecture directe ...) ?
Autre question qui en découle : lorsqu'un programme doit traiter le caractère '\x01', comment le transformer pour que, par exemple, lors d'un print il affiche tout simplement '1' dans le terminal (j'entends par là le caractère et non son numéro de position dans la table : par exemple, si j'ai '\x58', j'aimerais qu'il m'affiche bien 'X' et non 88 qui est sa position dans la table ASCII puisque ord('\x58') = ord('X') = 88 ) ?
Autrement dit, on a : '\x58' ==ord()==> 88 ==chr()==> 'X'
Mais par contre, on a '\x01' ==ord()==> 1 ==chr()==> '\x01'
Quelle est donc la fonction convert() qui permet : '\x01' ==ord()==> 1 ==convert()==> '1' ?
Et accessoirement, comme la réponse à chr() donne tantôt 'X', tantôt '\x01', j'imagine qu'il s'agit d'un ensemble homogène. S'agit-il d'une table d'encodage particulière qui commence ainsi : \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 a b c d e f g ... ?
Ce qui me perturbe vraiment, c'est de trouver chr(88) = 'X' et chr(1) = '\x01' alors que je me serais attendu à avoir :
- soit : chr(88) = 'X' et chr(1) = '1'
- soit : chr(88) = '\x58' et chr(1) = '\x01
Merci beaucoup si quelqu'un peut éclairer ma lanterne