ホームページ >バックエンド開発 >Python チュートリアル >Python で文字列値の前に「u」接頭辞が表示されるのはなぜですか?
Pythonにおける文字列値の前に表示される「u」記号の意味
フォームレンダリング時に、特定の文字列値の前に「u」という記号が表示されるのはなぜでしょうか?
このような記号が表示されるのは、文字列がユニコード文字列であることを示しています。ユニコードは、通常の ASCIIでは表現できない追加の文字を表現するための方法です。「u」が表示されているということは、Python 2を使用していることを意味します。Python 3では文字列はデフォルトでユニコードですが、Python 2では前に「u」が付いていることでユニコード文字列が区別されます。以降の回答では、Python 2に重点を置いて説明します。
ユニコード文字列を作成する方法は複数あります。
<code class="python">>>> u'foo' u'foo' >>> unicode('foo') # Python 2のみ u'foo'</code>
ただし、次のようなものを表現するには「u」が不可欠です(以下に翻訳)。
<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>
Python 2では、ユニコード文字列と非ユニコード文字列はほとんどの場合相互運用できます。
表示される他の記号として、バックラッシュを解釈しない文字列を示す「raw」記号の「r」があります。これは正規表現の記述に非常に便利です。
<code class="python">>>> 'foo\"' 'foo"' >>> r'foo\"' 'foo\"'</code>
Python 2では、ユニコード文字列と非ユニコード文字列は等しくなる場合があります。
<code class="python">>>> bird1 = unicode('unladen swallow') >>> bird2 = 'unladen swallow' >>> bird1 == bird2 True</code>
ただし、Python 3では等しくありません。
<code class="python">>>> x = u'asdf' # Python 3 >>> y = b'asdf' # bはバイト文字列を示す >>> x == y False</code>
以上がPython で文字列値の前に「u」接頭辞が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。