bytearray()
intégré de Python la méthode prend un itérable tel qu'une liste d'entiers entre 0 et 256, les convertit en octets entre 00000000
et 11111111
, et renvoie un nouveau tableau d'octets sous la forme d'un bytearray
classe.
Voici un exemple minimal qui crée un bytearray
parmi trois entiers stockés dans une liste :
>>> bytearray([1, 2, 3]) bytearray(b'\x01\x02\x03')
Le préfixe \x
séquence d'échappement signifie que les deux caractères suivants sont interprétés comme des codes de caractères hexadécimaux. Par exemple, le code hexadécimal \x01
est identique à chr(0x01)=16*0+1=1
c'est simplement un début de rubrique SOH
personnage. (source, table ASCII)
Syntax: bytearray([source[, encoding[, errors]]])
Argumentation | source (Facultatif) | Permet d'initialiser le bytearray de quatre manières différentes (de la plus simple à la plus complexe) :? entier –> array a cette taille et est initialisé avec 0 octet : >>> bytearray(4) ? itérable –> entiers dans la plage 0 <= x < 256 sont le contenu initial du bytearray :>>> bytearray([1, 2, 3]) ? chaîne et vous fournissez l'encodage (et éventuellement, erreurs ) arguments –> bytearray() convertit la chaîne en octets en utilisant str.encode() . ? objet l'implémentation de l'interface de tampon -> initialise le tableau d'octets via un tampon d'objet en lecture seule. |
Argumentation | encoding (Facultatif) | L'encodage utilisé dans le cas où vous fournissez un argument de chaîne. Exemple :'UTF-8' . |
Argumentation | errors (Facultatif) | L'action à entreprendre lorsque la conversion d'encodage échoue. N'a de sens que si source l'argument est une chaîne. |
Valeur de retour | bytearray | Renvoie un nouvel objet de type bytearray—une séquence d'octets. ⭐ Sans argument optionnel, il renvoie un bytearray avec un octet 0 : bytearray() –> bytearray(b'') |
Voici quelques utilisations de base de la fonction :
Input :bytearray(4)
Output :Input :
bytearray(b'\x00\x00\x00\x00')
bytearray([1, 2, 3])
Output :Input :
bytearray(b'\x01\x02\x03')
bytearray('hi', 'UTF-8')
Output :bytearray(b'hi')
Vous voulez en savoir plus ? Nous allons ensuite nous plonger dans d'autres exemples !
Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).
Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !
Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).
Lien :https://nostarch.com/pythononeliners
Créer un tableau d'octets à partir d'un argument entier unique - Exemples
Le code suivant vous montre comment utiliser le bytearray()
fonction sur des arguments entiers simples.
# Single Integer Input Argument print(bytearray()) print(bytearray(2)) print(bytearray(4)) ''' bytearray(b'') bytearray(b'\x00\x00') bytearray(b'\x00\x00\x00\x00') '''
Si vous fournissez un seul argument d'entrée, il utilise cet argument d'entrée pour déterminer le nombre d'octets à créer. Il utilise simplement des octets avec la valeur 0, en notation d'octet \x00
pour remplir le bytearray
.
Créer un tableau d'octets à partir d'un itérable d'entiers – Exemples
Vous pouvez également fournir un argument itérable pour obtenir un nouveau bytearray :
# Iterable Input Argument print(bytearray([1, 1, 1])) print(bytearray([14])) print(bytearray({9, 8, 7})) ''' bytearray(b'\x01\x01\x01') bytearray(b'\x0e') bytearray(b'\x08\t\x07') '''
L'itérable doit être composé d'un nombre d'entiers compris entre 0 et 256. Si vous ne le faites pas, Python lancera une ValueError :
Comment réparer "ValueError :l'octet doit être compris dans la plage (0, 256)"
Si vous utilisez le bytearray()
fonction sur un itérable qui contient au moins un entier supérieur au nombre maximum représentable par 8 bits, à savoir 256, ou inférieur à 0, Python lancera un ValueError: byte must be in range(0, 256)
. Vous pouvez résoudre ce problème en vous assurant que chaque nombre de votre itérable peut en fait être représenté par 8 bits et tombe dans l'intervalle de 0 à 256.
Voici un exemple de ValueError où vous utilisez un nombre supérieur ou égal à 256 :
>>> bytearray([999]) Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> bytearray([999]) ValueError: byte must be in range(0, 256)
Autre exemple d'utilisation d'un nombre inférieur à 0 :
>>> bytearray([-10]) Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> bytearray([-10]) ValueError: byte must be in range(0, 256)
Corrigez-le en modifiant les nombres pour qu'ils se situent dans l'intervalle de 0 à 256 :
>>> bytearray([255]) bytearray(b'\xff')
Résumé
bytearray()
intégré de Python permet de créer un nouveau bytearray
et l'initialiser de quatre manières différentes (de la plus simple à la plus complexe) :
? entier –> tableau a cette taille et est initialisé avec 0 octet :
>>> bytearray(4) bytearray(b'\x00\x00\x00\x00')
? itérable –> entiers dans la plage 0 <= x < 256
sont le contenu initial du bytearray :
>>> bytearray([1, 2, 3]) bytearray(b'\x01\x02\x03')
? chaîne et vous fournissez l'encodage (et éventuellement, erreurs ) arguments –> bytearray()
convertit la chaîne en octets en utilisant str.encode()
.
>>> bytearray('hi', 'UTF-8') bytearray(b'hi')
? objet l'implémentation de l'interface de tampon -> initialise le tableau d'octets via un tampon d'objet en lecture seule.
Voulez-vous améliorer vos compétences Python d'une manière amusante et facile à consommer ? Considérez les ressources suivantes et devenez un maître codeur !