ホームページ > バックエンド開発 > Python チュートリアル > Python の文字列プレフィックス「u」、「r」、「ur」の違いは何ですか?

Python の文字列プレフィックス「u」、「r」、「ur」の違いは何ですか?

Mary-Kate Olsen
リリース: 2024-12-18 10:03:11
オリジナル
772 人が閲覧しました

What's the Difference Between Python String Prefixes

文字列接頭辞のニュアンス: "u"、"r"、および "ur"

Python 文字列の領域では、目的と文字列プレフィックス「u」、「r」、および「ur」の機能。この記事は、生の文字列リテラルの独特の役割と複雑さに光を当てることを目的としています。

生の文字列リテラルが必要とするもの

一般的な誤解とは異なり、明確な「生の文字列」型は存在しません。代わりに、「生の文字列リテラル」とは、r'...' や r""...""" など、文字 "r" が接頭辞として付いた文字列を指します。これらのリテラルは、バックスラッシュ () の処理のみが異なります。

通常の文字列リテラルでは、通常、バックスラッシュの後に別の文字が続くと、エスケープ シーケンスがトリガーされ、改行やタブなどの特殊文字を表します。ただし、生の文字列リテラルは、バックスラッシュが文字列を終了する単一引用符または二重引用符の前にある場合を除き、バックスラッシュ自体を解釈します。

"u"、"r"、および "ur" プレフィックスの区別

接頭辞「u」は、unicode 型の Unicode オブジェクトである Unicode 文字列を示します。 Python 2.* では、u'...' は Unicode 文字列を表し、'...' はバイト文字列です。

前述したように、接頭辞「r」は生の文字列リテラルを示します。バックスラッシュを文字通りに保持するため、正規表現やネイティブ Windows ファイル パスを扱うときに便利です。 Python 2.* では、r'...' と r'''...''' の両方がバイト文字列を生成します。

「ur」プレフィックスは、「u」と「r」の機能を組み合わせたものです。 、生の Unicode 文字列リテラルになります。生の Unicode 文字列は、Unicode 文字を含むファイル パスを操作する場合に特に便利です。

文字列型間の変換

Python 2.* では、バイト文字列と Unicode 文字列は区別されます。 Unicode 文字列からバイト文字列に変換するには、.encode() メソッドを使用できます。バイト文字列から Unicode 文字列に変換するには、.decode() メソッドを使用できます。

エンコーディングと文字列プレフィックス

Python 2.* では、文字列のエンコーディングが決定されます。生のバイト データのデコード (文字列の作成時) または Unicode データのエンコード (文字列の作成時) に使用されるコーデックによって異なります。 「u」接頭辞は、結果の Unicode 文字列のエンコーディングには影響しません。

Python 3.* では、文字列はデフォルトで Unicode であるため、「u」接頭辞は必要なくなりました。さらに、生の文字列ではバックスラッシュがエスケープ シーケンスとして扱われないため、生の文字列リテラルは正規表現には必要ありません。

以上がPython の文字列プレフィックス「u」、「r」、「ur」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート