Maison > Article > développement back-end > Explication détaillée des types de chaîne Python, d'octets et de tableau d'octets
Python3 fait une distinction entre le texte et les données binaires. Le texte est codé Unicode, de type str, utilisé pour l'affichage. Le type binaire est de type octets, utilisé pour le stockage et la transmission. bytes est une séquence d'octets et str est une séquence unicode. Cet article présente principalement le type de chaîne Python, le type d'octets et le type de tableau d'octets. Les amis qui en ont besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.
1. type str :
>>> s = u'你好' >>> s '你好' >>> type(s) <class 'str'>
type d'octets :
>>> b = b'abc' >>> b b'abc' >>> type(b) <class 'bytes'>
2. La relation de conversion entre str et bytes : str-->encode()-->bytes-->decode()-->str
Méthode de conversion 1 : encode(), decode()
>>> a = u'你好' >>> b = a.encode('utf-8') >>> b b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> type(b) <class 'bytes'> >>> new_a = b.decode('utf-8') >>> new_a '你好' >>> type(new_a) <class 'str'>
Méthode de conversion deux : bytes(), str()
>>> a = u'你好' >>> b= bytes(a, encoding='utf-8') >>> b b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> type(b) <class 'bytes'> >>> new_a = str(b, encoding='utf-8') >>> new_a '你好' >>> type(new_a) <class 'str'>
3. Type Bytearray
La classe bytearray est une séquence variable avec une plage 0 <
Le paramètre source facultatif peut être utilisé pour initialiser le tableau de plusieurs manières différentes :
• S'il s'agit d'une chaîne, alors vous devez également donner les paramètres d'encodage (et éventuellement une erreur) ; bytearray() utilise ensuite str.encode() pour convertir la chaîne en octets.
• S'il s'agit d'un entier, alors le tableau aura cette taille et sera initialisé avec des octets nuls.
• S'il s'agit d'un objet conforme à l'interface buffer, le tableau d'octets sera initialisé en utilisant le buffer en lecture seule de l'objet.
• S'il est itérable, alors il doit s'agir d'une itération d'entiers compris entre 0 <
>>> b = bytearray(u'你好', encoding='utf-8') >>> b bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd') >>> type(b) <class 'bytearray'></p> <p></p>Lorsque le paramètre source est un entier : <p></p> <p></p> <pre class="brush:php;toolbar:false"> >>> b = bytearray(5) >>> b bytearray(b'\x00\x00\x00\x00\x00') >>> type(b) <class 'bytearray'>Lorsque le paramètre source est un objet itérable, alors les éléments de cet objet itérable doivent être conformes à 0 <= x < >4. La différence entre bytes et bytearray
>>> b = bytearray([1, 2, 3, 4, 255]) >>> b bytearray(b'\x01\x02\x03\x04\xff') >>> type(b) <class 'bytearray'
bytes est immuable, la même chose que str. bytearray est variable, comme la liste.
5. Conversion d'octets et de tableaux d'octets>>> b = bytearray() >>> b bytearray(b'') >>> b.append(10) >>> b bytearray(b'\n') >>> b.append(100) >>> b bytearray(b'\nd') >>> b.remove(100) >>> b bytearray(b'\n') >>> b.insert(0, 150) >>> b bytearray(b'\x96\n') >>> b.extend([1, 3, 5]) >>> b bytearray(b'\x96\n\x01\x03\x05') >>> b.pop(2) 1 >>> b bytearray(b'\x96\n\x03\x05') >>> b.reverse() >>> b bytearray(b'\x05\x03\n\x96') >>> b.clear() >>> b bytearray(b'')<p></p> <p></p> <p></p>6. conversion bytearray et str <pre class="brush:php;toolbar:false"> >>> b = b'abcdef' >>> bay = bytearray(b) >>> bay bytearray(b'abcdef') >>> b = bytes(bay) >>> b b'abcdef'Recommandations associées :
>>> a = 'abcdef' >>> b = bytearray(a, encoding='utf-8') >>> b bytearray(b'abcdef') >>> a = b.decode(encoding='utf-8') >>> a 'abcdef'Une brève discussion sur plusieurs méthodes de tri de numpy arrays_python
Utiliser le langage Python pour décrire la sous-séquence continue maximale et
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!