
このレクチャーでは、String(文字列)について学習します。
Table of Contents(目次)
String型
基本
Pythonは、文字情報をStringというデータ型で管理します。Stringは、1文字だけであっても、文字の羅列の場合も同じように扱います。つまり、次の各行の文字(列)情報は、Pythonでは区別なく取り扱うことができます。
"a"
"ABC"
"123.4"
"$%&"
"漢"
"にほんごOK"
文字列は、ダブルクォーテーション("
)もしくはシングルクォーテーション('
)で挟みます。文字列の両サイドは、同じ種類のクォーテーションで挟みます。
(ここから先は、ダブルクォーテーションのことを"ダブル"、シングルクォーテーションのことを"シングル"と記述します。)
Pythonは、最初のクォーテーションが出てきたタイミングで、『ここから文字列が始まる(始点)』と認識し、もう一度同じ種類のクォーテーションが出てくると『ここで文字列が終わる(終点)』と認識します。
それでは、コードを見ていきましょう。次のように書くことで、Pythonは文字列として認識します。
"I am Nico."
'I am Nico.'
VisualStudioCodeでは、文字列として認識された場合は、下図のように薄いオレンジ色に変わります。

もし、両端が同じ種類のクォーテーションでなければ、VisualStudioCodeはエラーを示す赤い波線が現れます。下図の場合は、『文字列の定義の始点はあるが、同じ種類のクォーテーションで閉じられていない』という警告になります。

クォーテーションを含む文字列(文章)の場合
それでは次に、先ほどの文章のI am
の部分を短縮形に変えてみましょう。次のようにコードを書いてみます。
"I'm Nico."
'I'm Nico.'
まず、1行目のように、ダブルで挟まれた中にシングルが入るケースは、エラー無く文字列として認識してくれます。両端がダブル(同じ種類のクォーテーション)で挟まれているため、その中にシングルが混ざっても問題ありません。
2行目のように、シングルの中にシングルが入ると問題が起こります。VisualStudioCodeの表示も、下図のようにエラー表記になっています。(赤い波線の部分が問題が起こっている箇所であることを示しています。)

なぜ2行目のやり方がダメなのかというと、Pythonは、始点と同じクォーテーションが出現すると、それを終点とみなします。つまり、最初の'I'
の右側のシングルを終点としてみなし、文字列の範囲と認識します。'I'
より右側のm Nico.
の部分は始点のクォーテーションが存在しないという判定になるため、文字列として認識されずにエラーが出てしまいます。
ダブルとシングル、どちらを使用するのがいいのか
Pythonは、同じ種類のクォーテーションで挟めば文字列として認識されます。また、処理の結果に差は無いので、どちらを使っても問題ありません。
管理人の場合は、基本的にシングルを使い、文字列の中にシングルがある場合にのみダブルで囲う、といった使い分けをしています。理由は単純で、『ダブルよりシングルの方がコードがスッキリとみえる』という点です。また、私以外にもシングルで記述するプログラマー方は多くいらっしゃいます。
変数への代入
文字列を変数へ代入する書式は、数値の時と同じです。
greeting_by_nico = "I'm Nico. Nice to meet you."
print(greeting_by_nico)
上記例では、I'm Nico. Nice to meet you.
という文字列を"greeting_by_nico"変数へ代入しています。
文字列の場合も、その変数に代入されている情報(文章)が、どのようなものなのかが直ぐに分かるような変数名を付けるようにしましょう。