Maison >développement back-end >Tutoriel Python >Pourquoi un préfixe \'u\' apparaît-il avant les valeurs de chaîne en Python ?

Pourquoi un préfixe \'u\' apparaît-il avant les valeurs de chaîne en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 13:24:03794parcourir

Why does a

Signification du symbole "u" qui apparaît avant les valeurs de chaîne en Python

Lors du rendu d'un formulaire, une valeur de chaîne spécifique Pourquoi y a-t-il un symbole "u" devant le ?

Lorsque vous voyez un symbole comme celui-ci, cela indique que la chaîne est une chaîne Unicode. Unicode est un moyen de représenter des caractères supplémentaires qui ne peuvent pas être représentés en ASCII standard. Si vous voyez un "u", cela signifie que vous utilisez Python 2. Dans Python 3, les chaînes sont Unicode par défaut, mais dans Python 2, les chaînes Unicode se distinguent par un « u » initial. Les réponses suivantes se concentreront sur Python 2.

Il existe plusieurs façons de créer des chaînes Unicode.

<code class="python">>>> u'foo'
u'foo'
>>> unicode('foo') # Python 2のみ
u'foo'</code>

Cependant, « u » est essentiel pour exprimer quelque chose comme ce qui suit (traduit ci-dessous) :

<code class="python">>>> val = u'Ознакомьтесь с документацией'
>>> val
u'\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439'
>>> print(val)
Ознакомьтесь с документацией</code>

Dans Python 2, les chaînes Unicode et non Unicode sont interopérables dans la plupart des cas.

D'autres symboles pouvant apparaître incluent un "r" pour le symbole "brut", qui indique une chaîne qui n'interprète pas les contrecoups. Ceci est très utile pour écrire des expressions régulières.

<code class="python">>>> 'foo\"'
'foo"'
>>> r'foo\"'
'foo\"'</code>

Dans Python 2, les chaînes unicode et non-unicode peuvent être égales.

<code class="python">>>> bird1 = unicode('unladen swallow')
>>> bird2 = 'unladen swallow'
>>> bird1 == bird2
True</code>

Cependant, dans Python 3, ils ne sont pas égaux.

<code class="python">>>> x = u'asdf' # Python 3
>>> y = b'asdf' # bはバイト文字列を示す
>>> x == y
False</code>

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!

Déclaration:
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