Explication détaillée des types de chaîne Python, d'octets et de tableau d'octets

小云云
Libérer: 2017-12-18 09:17:47
original
6614 Les gens l'ont consulté

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 &#39;str&#39;>
Copier après la connexion

type d'octets :

 >>> b = b'abc'
 >>> b
 b'abc'
 >>> type(b)
 <class &#39;bytes&#39;>
Copier après la connexion

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 &#39;bytes&#39;>
 >>> new_a = b.decode('utf-8')
 >>> new_a
 '你好'
 >>> type(new_a)
 <class &#39;str&#39;>
Copier après la connexion

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 &#39;bytes&#39;>
 >>> new_a = str(b, encoding='utf-8')
 >>> new_a
 '你好'
 >>> type(new_a)
 <class &#39;str&#39;>
Copier après la connexion

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 <

Lorsque le paramètre source est une chaîne :

 >>> b = bytearray(u'你好', encoding='utf-8')
 >>> b
 bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
 >>> type(b)
 <class &#39;bytearray&#39;></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 &#39;bytearray&#39;>
Copier après la connexion

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 &#39;bytearray&#39;
Copier après la connexion

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'
Copier après la connexion

Recommandations associées :
 >>> a = 'abcdef'
 >>> b = bytearray(a, encoding='utf-8')
 >>> b
 bytearray(b'abcdef')
 >>> a = b.decode(encoding='utf-8')
 >>> a
 'abcdef'
Copier après la connexion

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

Maîtriser complètement Python

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!