Meaning of the "u" symbol that appears before string values in Python
When rendering a form, a specific string value Why is there a "u" symbol in front of the ?
When you see a symbol like this, it indicates that the string is a Unicode string. Unicode is a way to represent additional characters that cannot be represented in regular ASCII. If you see a "u" it means you are using Python 2. In Python 3, strings are Unicode by default, but in Python 2 Unicode strings are distinguished by a leading "u". Subsequent answers will focus on Python 2.
There are multiple ways to create Unicode strings.
<code class="python">>>> u'foo' u'foo' >>> unicode('foo') # Python 2のみ u'foo'</code>
However, "u" is essential to express something like the following (translated below):
<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>
In Python 2, Unicode and non-Unicode strings are interoperable in most cases.
Other symbols that may appear include an "r" for the "raw" symbol, which indicates a string that does not interpret backlashes. This is very useful for writing regular expressions.
<code class="python">>>> 'foo\"' 'foo"' >>> r'foo\"' 'foo\"'</code>
In Python 2, unicode and non-unicode strings may be equal.
<code class="python">>>> bird1 = unicode('unladen swallow') >>> bird2 = 'unladen swallow' >>> bird1 == bird2 True</code>
However, in Python 3 they are not equal.
<code class="python">>>> x = u'asdf' # Python 3 >>> y = b'asdf' # bはバイト文字列を示す >>> x == y False</code>
The above is the detailed content of Why does a 'u' prefix appear before string values in Python?. For more information, please follow other related articles on the PHP Chinese website!