Pythonの文字列型
文字列型は名前の通り、文字列を扱うデータ型です。
Pythonでは文字列を意味するstringを略して「str型」と呼ばれます。
使用頻度がとても高いデータ型のため、プログラムを書いているうちに当たり前のように書けるようになります。
文字列とは?
Pythonに関わらず、プログラミング言語では「文字列」という言葉が出てきます。
「文字列」とは0文字以上の連続する文字の並びのことを言います。0文字以上なのは、1文字も書いていない場合でもデータ型が文字列型であれば文字列としてみなされるためです。
Pythonでは文字列として扱うためのルールがあります。それは、’abc’や”abc”のように、シングルクォーテーション(‘)かダブルクォーテーション(“)で囲まれていなければ文字列としてみなされません。
言い方を変えれば、シングルクォーテーションやダブルクォーテーションで囲まれていれば、すべて文字列として扱われます。そのため、シングルクォーテーションで囲まれた「’123’」も数値ではなく文字列として扱われます。
文字列とみなされない場合
シングルクォーテーションとダブルクォーテーションで囲まれていれば文字列としてみなされますが、’123″や”123’のようにシングルクォーテーションとダブルクォーテーションを組み合わせが不一致の場合は文字列としてはみなされません。
「’~’」または「”~”」の書き方をする必要があります。
組み合わせが不一致の場合の以下のようなコードを実行すると、
1 |
print('test") |
以下のようにエラーになります。
1 |
SyntaxError: EOL while scanning string literal |
日本語の文字列
文字列型では日本語も扱うことが可能です。
1 2 |
'あいうえお' "あいうえお" |
古いバージョンのPythonの場合は日本語を扱う際に工夫が必要でしたが、Python3以降であれば日本語も規定されているUTF-8が標準の文字コードのため、問題なく日本語を扱えます。
ただし、半角カタカナは入力が難しいOSがあるため特に使う必要がないのであれば利用を避けた方がよいでしょう。
特殊文字の書き方
文字列はシングルクォーテーションかダブルクォーテーションで囲いますが、シングルクォーテーションやダブルクォーテーション自体を文字列に含みたい場合は少し特殊な書き方が必要になります。
書き方には2通りあります。
1つは「エスケープシーケンス」と呼ばれる「\」記号を使う方法で、もう1つがシングルクォーテーション文字列はダブルクォーテーションで囲み、ダブルクォーテーション文字列はシングルクォーテーションで囲む方法です。
エスケープシーケンスを使って例えば「I’m sure」を文字列にしたい場合は、「\」(Macの場合はバックスラッシュ)を文字列内のシングルクォーテーションに付けて、「’I\’m sure’」と書きます。
「\」自体を出力したい場合も「\」を付与して、「\\」と書くと文字列として”\”が出力されます。
以下が2通りの書き方のサンプルです。
1 2 3 4 5 6 7 8 9 10 11 |
# \を出力 print('\\100,000') # エスケープシーケンスを使う方法 print('I\'m sure') # ダブルクォーテーションを使う方法 print("I'm sure") # シングルクォーテーションを使う方法 print('string "abc"') |
以下のように出力されます。
1 2 3 4 |
\100,000 I'm sure I'm sure string "abc" |
文字列に改行を含める書き方
文字列には改行文字も含めることができます。
「\n」が改行文字の意味になります。
1 |
print('line1\nline2\nline3') |
以下が出力結果です。
1 2 3 |
line1 line2 line3 |
文字列の連結
文字列同士の連結を行うには「+」を使います。
連結する文字列はそれぞれが文字列であればシングルクォーテーションとダブルクォーテーションのどちらを使っていても構いません。
1 2 |
print('abc' + "123") print('abc' + "123" + "ABC") |
連結結果が以下のように出力されます。
1 2 |
abc123 abc123ABC |
文字列の繰り返し
同じ文字列を指定回数繰り返して連結させたい場合には「*」を使います。
別の文字列同士の連結結果に対して「*」を使うことも可能です。
1 2 |
print('123 *' * 2) print(('abc' + "123 ") * 2) |
連結結果は以下のようになります。
1 2 |
123 *123 * abc123 abc123 |
次にやること
次のページでは、数値型の基本について紹介します。
次ページ:Pythonの数値型の基本
前ページ:Pythonのデータ型の基本