CodeGym /コース /Python SELF JA /文字列の高度な操作

文字列の高度な操作

Python SELF JA
レベル 10, レッスン 1
使用可能

9.1 文字列の宣言

Pythonでは、文字列はテキスト情報を保存し、表現するために使用される文字のシーケンスです。文字列は複数の方法で作成でき、宣言や操作時の柔軟性が提供されています(既に知っているように、文字列は変更できません)。

文字列を宣言する主な方法

  1. シングルクォート: string = 'こんにちは、友よ!'
  2. ダブルクォート: string = "こんにちは、友よ!"

どちらの方法も同等で、プログラマーの好みや、文字列内でどの種類のクォートを使用するかに依存します(エスケープを避けるため)。

複数行の文字列

複数行の文字列を宣言するにはトリプルクォートを使用します。シングルクォートのトリプル(''')やダブルクォートのトリプル(""")が使えます。この方法は、複数行に渡るテキストに便利です:


multiline_string = """最初の行
二番目の行
三番目の行"""
        

文字のエスケープ

Pythonでは文字列内の文字をバックスラッシュ(\)でエスケープできます。これにより、改行(\n)やタブ(\t)、またはバックスラッシュ自身(\\)などの特殊文字を挿入することができます。


escaped_string = "彼は言った: \"こんにちは、友よ!\""
        

エスケープについては、もう少し後の講義で詳しく見ていきます。

生の文字列

生の文字列(raw string)は、エスケープ文字が無効化された文字列です。rプレフィックスで宣言されます:


raw_string = r"この文字列内では \n は改行とは見なされません."
        

文字列のフォーマット

Pythonは文字列をフォーマットするためのいくつかの方法を提供しています。最も強力なのはf-stringsで、Python 3.6以降で使用できます。これにより、Pythonの式を直接文字列内に組み込むことができます:


name = "世界"
formatted_string = f"こんにちは、{name}!"
        

文字列の連結

文字列は「+」演算子を使って複数の文字列を結合したり、複雑な場合にはjoin()メソッドを使って作成できます:


greeting = "こんにちは、 " + "友よ!"
        

文字列の不変性(イミュータビリティ)

Pythonの文字列は不変であることを覚えておいてください。これは、文字列を変更する操作が実際には新しい文字列を作成することを意味します。

9.2 ネストしたクォート

Pythonで文字列を扱う際、ネストしたクォートを含む場合は、コードの正当性を確保し、構文エラーを避けるために特に注意を払う必要があります。

クォートで囲まれたテキスト内にクォートをただ書くわけにはいきません。例えば、あなたが書くコード:


escaped_string = "彼は言った: "こんにちは、世界!"… "
        

これをPythonはこう解釈します:


escaped_string = "彼は言った: "こんにちは、世界!"… "
        

彼らは文字列内の最後のクォートではなく、最も近いクォートを見つけようとします。そのため、テキスト内にクォートを追加するには少し工夫が必要です。以下は、Pythonの文字列内でネストしたクォートを管理するための主な手法と方法の概要です:

異なる種類のクォートを使用

Pythonでは文字列を定義するために、シングルクォート(')とダブルクォート(")の両方を使用することができます。これにより、一方のクォートを他方のクォート内にネストできます:


quote = "He said, 'Hello, world!'"
# または
quote = 'He said, "Hello, world!"'
        

クォートのエスケープ

文字列内に同じクォートを使用する必要がある場合、バックスラッシュ(\)を使ってクォートをエスケープできます:


quote = "He said,\"Hello, world!\" "
        

複数行の文字列

ネストされたクォートを含む複数行の文字列を作成するには、トリプルクォート(''' または """)を使用すると便利です:


multiline_quote = """これは長い引用文で、複数の種類のクォートを含みます: "ダブルクォート" と 'シングルクォート'。それは複数行にわたります。"""
        
2
タスク
Python SELF JA, レベル 10, レッスン 1
ロック未解除
複数行文字列。
複数行文字列。
2
タスク
Python SELF JA, レベル 10, レッスン 1
ロック未解除
エスケープシーケンス
エスケープシーケンス
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION