|
|
@@ -73,9 +73,20 @@ On peut interpréter des octets comme du texte - c'est la table ASCII |
|
|
|
* Ça sert à *envoyer* du texte sur des terminaux d'où les "caractères" non-imprimables dans la liste |
|
|
|
* Mais c'est une convention *très* utilisée |
|
|
|
|
|
|
|
# En ASCII |
|
|
|
# Utiliser ASCII en Python |
|
|
|
|
|
|
|
C'est aussi la façon dont l'affiche python |
|
|
|
Avec `ord` et `chr` |
|
|
|
|
|
|
|
```python |
|
|
|
>>> ord('a') |
|
|
|
97 |
|
|
|
>>> chr(98) |
|
|
|
'b' |
|
|
|
``` |
|
|
|
|
|
|
|
# Affichage des bytearrays en Python |
|
|
|
|
|
|
|
Python utilise ASCII pour afficher les bytearrays si les caractères sont "imprimables" |
|
|
|
|
|
|
|
```python |
|
|
|
>>> data = bytearray([97,98,99]) |
|
|
@@ -83,6 +94,14 @@ C'est aussi la façon dont l'affiche python |
|
|
|
bytearray(b"abc") |
|
|
|
``` |
|
|
|
|
|
|
|
Et `\x` et le code hexa sinon: |
|
|
|
|
|
|
|
```python |
|
|
|
>>> data = bytearray([7, 69, 76, 70]) |
|
|
|
>>> data |
|
|
|
bytearray(b'\x07ELF') |
|
|
|
``` |
|
|
|
|
|
|
|
# Types |
|
|
|
|
|
|
|
La variable `b"abc"` est une "chaîne de bits", de même que `"abc"` est une "chaîne de caractères". |
|
|
@@ -122,17 +141,6 @@ Par contre on peut modifier un bytearray |
|
|
|
bytearray("_oo") |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
# Quand ce n'est pas imprimable |
|
|
|
|
|
|
|
Python affiche `\x` et le code hexa: |
|
|
|
|
|
|
|
```python |
|
|
|
>>> data = bytearray([7, 69, 76, 70]) |
|
|
|
>>> data |
|
|
|
bytearray(b'\x07ELF') |
|
|
|
``` |
|
|
|
|
|
|
|
# Plus loin que l'ASCII |
|
|
|
|
|
|
|
Pas de caractères accentuès dans ASCII. Du coup, on a d'autres *conventions* qu'on appelle "encodage". |
|
|
|