Pythonの文字列

文字列は"'で囲んで生成する。

  1. 文字列
  2. 特殊文字
  3. エスケープ
  4. 複数行の文字列
  5. 文字列の連結
  6. 文字列の繰り返し
  7. 文字数カウント len関数
  8. 文字列の検索
  9. 文字列のスライス
  10. 文字列メソッド

文字列

文字列は"'で囲んで生成する。

挨拶  = 'こんにちは'
print(挨拶) # こんにちは

数値オブジェクトとの違い

文字  = '100' # これは文字としての100
数値 = 100 # こっちは数値オブジェクト

print(文字 + 文字) # 100100
print(数値 + 数値) # 200

特殊文字

文字列の中には、ただの文字ではなく特別な意味で解釈される特殊文字を含めることができる。例えば\nという特殊文字は改行と解釈される。

print('Hello\nworld!') # Helloの後改行が入る

エスケープ

特殊文字としての解釈をせず通常の文字扱いにすることをエスケープといい、\を直前に付ける。

print('改行は\\nとコーディング') # 「改行は\nとコーディング」と出力

複数行の文字列

改行のために特殊文字\nを多用するとコードの可読性が下がる。そこで"""'''で囲んで文字列を生成すると、改行を見た目そのままコードに含められる。

長文 = '''改行、
しまくりの、
文字列。'''

print(長文)

上記の出力はこうなる。

改行、
しまくりの、
文字列。

文字列の連結

文字列どうしをつなげるなら+

print('あいう' + 'えお') # あいうえお

数値オブジェクトとつなげたい場合

数値オブジェクトはそのままでは文字列と連結できないので、文字列と合わせて出力したいなら、str関数で文字列に変換する。

西暦 = 2016 # 数値オブジェクト
print('今年は' + str(西暦) + '年') # 今年は2016年

文字列の繰り返し

文字列を繰り返すなら*と回数で掛け算をする。

print('あ' * 5) # あああああ

print('あ' * '5') # エラー

print('あ' * 5.0) # エラー

文字数カウント len関数

文字数のカウントはlen関数。

あ行 = 'あいうえお'
print(len(あ行)) # 5

文字列の検索

文字列中にあるキーワード文字列が含まれているか調べるなら、in演算子を使って'キーワード' in '文字列'のようにして、真偽値を得る。

print('いうえ' in 'あいうえお') # True

文字列のスライス

文字列から一部分を取ってくる(スライス)には、何文字目かというインデックス番号を使う。インデックスは一文字目が0番から始まる。

一文字だけ取り出す

あ行 = 'あいうえお'
print(あ行[3]) # え

print(あ行[5]) # エラー

後ろから数えて一文字だけ取り出す

インデックスは後ろから数える場合は-1番目から始まり、-2と続く。

あ行 = 'あいうえお'
print(あ行[-3]) # う

print(あ行[-6]) # エラー

範囲指定してスライス

[以上:未満]という書式で文字列スライスできる。範囲指定の場合、インデックスが範囲外でもエラーにならない。「以上」を省略すると最初の文字から、「未満」を省略すると最後の文字まで、という扱い。

あ行 = 'あいうえお'
print(あ行[1:3]) # いう

# エラーにならず
print(あ行[1:100]) # いうえお

print(あ行[:3]) # あいう
print(あ行[3:]) # えお
print(あ行[-3:]) # うえお

文字列メソッド

文字列オブジェクト.関数()のようにして呼び出せる関数(メソッド)によって、様々な文字列操作ができる。文字列メソッドの一覧