⇨ MENU ⇨ METHODES ⇨ bytearray ( )
Tutoriel de bytearray ( )
⇨ MENU ⇨ METHODES ⇨ bytearray ( )
Tutoriel de bytearray ( )
DESCRIPTION.
Crée un nouvel objet byte (tableau d'octets) muable.
SYNTAXE.
BYA_Octects = bytearray ( construction , code , erreur )
BYA_Octects = ⇨ Nom de la variable [ OBLIGATOIRE ]
bytearray ( ) ⇨ création d'une instance de bytearray ( ) [ OBLIGATOIRE ]
construction ⇨ type de création [ OBLIGATOIRE ]
code ⇨ encode des caractères [ optionnel ]
erreur ⇨ gestionnaire d'erreurs à invoquer [ optionnel ]
REMARQUES.
Python gère de nombreux types d'objets-variables. Certains sont des collections de valeurs regroupées au sein d'un même objet_variable. Les ensembles, bytearray ( ), sont des objets-variables composites, comme les listes, où l'on peut enregistrer des valeurs dans un ordre quelconque.
Python propose 2 types d'objets byte, bytearray ( ) muable et bytes ( ) immuable. On peut les considérer comme une liste d'éléments dont les valeurs ne peuvent être comprise qu'entre 0 et 255, et représentées soit un caractère, soit par une séquence d’échappement, correspondant à la valeur ASCII. Les éléments sont donc stockés sous la forme d'octets, plus rapidement traitable par la machine, et directement enregistrés sur un support (disque dur, clé, ...).
Pour simplifier, on peut se dire qu'un bytearray ( ) est un str ( ), muable, qui ne peut contenir que les valeurs reconnues par le standard ASCII. Mais attention, car un bytearray ( ) n'accepte que des objets bytes ( ) (b" ... ") ou compatibles avec eux, de même que les str ( ) n'accepte pas d'objet bytes ( ) sans les convertir.
Les variables globales de type bytearray ( ) sont identifiées dans le site par : BYA_.
Voir les conventions sur les variables utilisées dans ce site ...
CRÉER UN BYTEARRAY.
Pour créé un nouvel objet bytearray ( ) il faut obligatoirement appeler le constructeur de classe. Selon le contenu que l'on souhaite déposer dans l'objet à sa création, celle-ci doit prendre une formulation spécifique.
L'appel du constructeur de classe bytearray ( ) sans argument, créer un bytearray ( ) vide.
BYA_Vide = bytearray ( )
print ( BYA_Vide ) retourne bytearray(b'')
print ( type ( BYA_Vide ) ) retourne <class 'bytearray'>
L'appel du constructeur de classe bytearray ( ) avec un unique int ( ) comme argument, retourne un bytearray ( ) contenant autant de 0 que la valeur de int ( ).
BYA_Zeros = bytearray ( 12 )
print ( BYA_Zeros ) retourne bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
print ( type ( BYA_Zeros ) ) retourne <class 'bytearray'>
L'appel du constructeur de classe bytearray ( ) avec une chaine de caractère préfixée par b'' (objet bytes ( )) comme argument, retourne un bytearray ( ) contenant la même chaine.
BYA_Version = bytearray ( b"Python 3" )
print ( BYA_Version ) retourne bytearray(b'Python 3'')
Cela pourra être utile pour savoir si la chaine contient des valeurs supérieures à 255.
print ( bytearray ( b"áéïõù" ) ) retourne bytes can only contain ASCII literal characters
L'appel du constructeur de classe bytearray ( ) avec une chaine de caractère non ASCII, doit préciser en deuxième argument l'encodage utilisé pour le str ( ).
BYA_Accents = bytearray ( "áéïõù" , "utf-8" )
print ( BYA_Accents ) retourne bytearray(b'\xc3\xa1\xc3\xa9\xc3\xaf\xc3\xb5\xc3\xb9')
L'appel du constructeur de classe bytearray ( ) avec un objet iterable (list ( ), tuple ( ), range ( )) comme argument, retourne un bytearray ( ) contenant les valeurs de l'itérable.
BYA_Suite = bytearray ( range ( 7 ) )
print ( BYA_Suite ) retourne bytearray(b'\x00\x01\x02\x03\x04\x05\x06')
print ( bytearray ( ( 97 , 101 , 105 , 111 , 117 , 121 ) ) ) retourne bytearray(b'aeiouy')
print ( bytearray ( [ knote for knote in range ( 65 , 72 ) ] ) ) retourne bytearray(b'ABCDEFG')
Notez que c'est bien le caractère (lettre) ASCII correspondant au int ( ) qui est retourné, quand il existe, sinon c'est une séquence d'échappement, et que les éléments de l'objet bytearray ( ) sont regroupés au sein d'une chaine unique, préfixée de b'', et non séparés par une virgule comme dans les objets itérables.
Le constructeur de classe bytearray ( ) dispose aussi d'une méthode de classe .fromhex ( ) permettant de créer un bytearray ( ) en donnant les valeurs hexadécimales des éléments à la place des int ( ) correspondants. Cette méthode attend un str ( ), comme unique argument, avec les valeurs hexadécimales, chacune représentée par 2 caractères, séparées ou non, par un ou des espaces, qui seront omis dans le bytearray ( ).
print ( bytearray.fromhex ( "3C 5a 414243 7E " ) ) retourne bytearray(b'<ZABC~')
< étant le caractère ASCII ayant pour code 3C (60), Z étant le caractère ASCII ayant pour code 5A (90), A étant le caractère ASCII ayant pour code 41 (65), B étant le caractère ASCII ayant pour code 42 (66), C étant le caractère ASCII ayant pour code 43 (67), ~ étant le caractère ASCII ayant pour code 7E (126).
La méthode de classe .hex ( ) retournera un str ( ) contenant les valeurs hexadécimales des éléments d'un objet bytearray ( ).
BYA_Version = bytearray ( b"Python 3" )
Conversion = BYA_Version.hex ( )
print ( Conversion ) retourne 507974686f6e2033
print ( type ( Conversion ) ) retourne <class 'str'>
GESTION DES BYTEARRAY.
Connaitre la valeur d'un élément à un index précis dans un bytearray ( ).
BYA_Version = bytearray ( b"Python 3" )
print ( BYA_Version [ 0 ] , BYA_Version [ 6 ] , BYA_Version [ 2 ] ) retourne 80 32 116
Notez que se sont toujours des int ( ) qui sont retournés.
Connaitre la longueur (nombre d'éléments) d'un bytearray ( ).
BYA_Version = bytearray ( b"Python 3" )
print ( len ( BYA_Version ) ) retourne 8
BYA_Version est constituée de 8 éléments, int ( ) compris entre 0 et 255.
Extraire une sous-séquence.
BYA_Texte = bytearray ( b"Salut le Monde !" )
print ( BYA_Texte [ 3 : 11 ] ) retourne bytearray(b'ut le Mo')
Tous les éléments de l'index 3 à l'index 10 de BYA_Texte dans un bytearray ( ).
Premier = BYA_Texte [ 0 ]
BYA_Quoi = BYA_Texte [ 0 : 5 ]
print ( Premier ) retourne 83
print ( BYA_Quoi ) retourne bytearray(b'Salut')
print ( type ( Premier ) ) retourne <class 'int'>
print ( type ( BYA_Quoi ) ) retourne <class 'bytearray'>
Si on ne recherche qu'un élément c'est un int ( ) qui est retourné. Si on demande une tranche de la séquence (slicing) c'est un bytearray ( ) qui est retourné. Voir la classe list ( ) pour plus informations sur le slicing.
Parcourir tous les éléments d'une chaîne de caractères.
BYA_Version = bytearray ( b"Python 3" )
for kelement in BYA_Version :
print ( kelement , end = " " )
retourne 80 121 116 104 111 110 32 51
Rechercher la présence d'un élément dans un bytearray ( ).
BYA_Joie = bytearray ( "Youpi" , "utf-8" )
print ( BYA_Joie )
if "p" in BYA_Joie : print ( "p est dans Youpi" ) retourne a bytes-like object is required, not 'str'
car les éléments d'un bytearray ( ) sont des bytes ( ) et pas des str ( ).
if b"p" in BYA_Joie : print ( "p est dans Youpi" ) retourne p est dans Youpi
if 112 in BYA_Joie : print ( "p est dans Youpi" ) retourne p est dans Youpi
car 112 est le code ASCII de p.
if b"y" in BYA_Joie : print ( "y est dans Youpi" ) retourne
rien car le test est faux : b"y" (y minuscule) ne se trouve pas dans Youpi (Y majuscule).
MODIFIER UN BYTEARRAY.
Contrairement aux str ( ) et aux bytes ( ), les objets bytearray ( ) sont des objets séquences muables, on peut dont utiliser les méthodes de modification des list ( ), à condition que les valeurs des éléments du bytearray ( ) soient toujours des int ( ) compris entre 0 et 255, ou des bytes ( ) valides. Par exemple.
BYA_Version = bytearray ( b"Python 3" )
for kindex in range ( len ( BYA_Version ) ) :
kancien = BYA_Version [ kindex ]
knouveau = kancien + 1
BYA_Version [ kindex ] = knouveau
print ( f"Changement du { kancien } en { knouveau } donne { BYA_Version }." )
retourne
Changement du 80 en 81 donne bytearray(b'Qython 3').
Changement du 121 en 122 donne bytearray(b'Qzthon 3').
Changement du 116 en 117 donne bytearray(b'Qzuhon 3').
Changement du 104 en 105 donne bytearray(b'Qzuion 3').
Changement du 111 en 112 donne bytearray(b'Qzuipn 3').
Changement du 110 en 111 donne bytearray(b'Qzuipo 3').
Changement du 32 en 33 donne bytearray(b'Qzuipo!3').
Changement du 51 en 52 donne bytearray(b'Qzuipo!4').
Voir la classe list ( ) pour plus informations sur la modification des séquences muables.
MÉTHODES SPÉCIFIQUES AUX OBJETS BYTEARRAY.
capitalize ( ) : retourne un tableau d'octets par une majuscule.
center ( ) : retourne un tableau d'octets entourée d'un symbole.
count ( ) : retourne le nombre d'octets ayant la même valeur.
decode ( ) : convertit un tableau d'octets en une chaine de caractères.
endswith ( ) : teste la fin d'un tableau d'octets avec un modèle.
find ( ) : retourne la position d'une occurrence dans un tableau d'octets.
fromhex ( ) : créé un tableau d'octets depuis des valeurs hexadécimales.
hex ( ) : convertit un tableau d'octets en valeurs hexadécimales.
index ( ) : retourne la position d'une occurrence dans un tableau d'octets.
isalnum ( ) : teste si tous les octets du tableau sont alphanumériques.
isalpha ( ) : teste si tous les octets du tableau sont alphabétiques.
isascii ( ) : teste si tous les octets du tableau sont ASCII.
isdigit ( ) : teste si tous les octets du tableau sont des chiffres.
islower ( ) : teste la présence d'une minuscule dans un tableau.
isspace ( ) : teste si tous les octets du tableau sont des espaces.
istitle ( ) : teste un tableau se présente comme un titre.
isupper ( ) : teste la présence d'un majuscule dans un tableau.
join ( ) : assemble plusieurs tableaux d'octets entre-eux.
ljust ( ) : retourne un tableau d'octets justifiée à gauche.
lower ( ) : retourne tous les octets en minuscules.
lstrip ( ) : supprime certains octets en début d'un tableau d'octets.
maketrans ( ) : construit un tableau d'octets de cryptage.
partition ( ) : fractionne un tableau d'octets en fonction d'un séparateur.
removeprefix ( ) : supprime le début d'un tableau d'octets.
removesuffix ( ) : supprime la fin d'un tableau d'octets.
replace ( ) : remplace des octets par d'autres dans un tableau d'octets.
rfind ( ) : retourne la dernière occurrences dans un tableau d'octets.
rindex ( ) : retourne la dernière occurrences dans un tableau d'octets.
rjust ( ) : retourne un tableau d'octets justifié à droite.
rpartition ( ) : retourne une fin d'un tableau d'octets.
rsplit ( ) : retourne la liste des séquences d'un tableau d'octets.
rstrip ( ) : supprime certains octets en fin d'un tableau d'octets.
split ( ) : retourne la liste des mots d'un tableau d'octets.
splitlines ( ) : retourne la liste des sauts de ligne d'un tableau d'octets.
startswith ( ) : teste le début d'un tableau d'octets avec un modèle.
strip ( ) : supprime certains octets aux extrémités d'un tableau.
swapcase ( ) : inverse les majuscules et les minuscules.
title ( ) : fait commencer tous les mots d'un tableau par une majuscule.
translate ( ) : modifie les octets selon une table de cryptage.
upper ( ) : retourne tous les octets en majuscules.
zfill ( ) : ajoute des 0 en début de d'un tableau d'octets.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.