Pythonに出てくる最も基本的な「組み込みデータ型」は、整数・少数・boolean(ブーリアンorブール?)・文字列だ。
ここでは文字列を自由自在に操る方法をまとめていきたい。(新しいものを習ったら、随時更新していくぞ)
文字列というのは、以下の形で記述される。
moji_example = “learn to program”
これを操っていくわけだが、この記事で紹介するのは、以下の方法だ。
- 文字列の長さ(文字数)を取得
- 文字列の抽出
- 文字列を大文字・小文字に
- 文字列の検索・含む・置換
- 文字列の連結
- エスケープシーケンス
それでは、一つづつ見ていこう。
文字列の長さ(文字数)を取得
以下の文字列を例にして実際の方法を試していくぞ。
moji_example = “learn to program”
文字列の長さを求めるのはlenだ。Excelと同じだな。
len(moji_example)
表示させないとこれが何かわからないので、printを使う。
print(len(moji_example))
実行すると:
16
” “でくくった文字列の長さが表示されたはずだ。
たしかにスペースを含むと16文字になる。
文字列の抽出
次に、moji_exampleの文字列を抽出していく。
moji_example = “learn to program”
文字列から文字を抽出するには角カッコ [ ] を使う。
moji_example[]
16文字あるmoji_exampleの最初の文字は1個目ではなく0個目から始まると考える。プログラミングでは良くある話だ。
だから、最初の文字を抽出するなら0を[ ]内に入れればいい。
最初の文字を抽出
moji_example[0]
この例では、エル(l)が抽出されたはずだ。
lと1は似ているから、数字のイチが出力されたと勘違いして焦ってしまった。
他の抽出方法は以下にまとめる。
最初の文字を抽出
moji_example[0]
最後の文字を抽出
moji_example[-1]
最初から3文字目までを抽出
moji_example[0:3]
※3と書いてあるから、4つ目までと思うが、ここは3の一個前のものまで抽出されることを覚えておこう。
moji_example[:3]
こう書いても[0:3]と同じものになる。
出力するには、
print()で上記の例を、()内に入れればいい。
これで文字列の特定の位置にある文字を自由自在に抽出することが可能だ。
文字列を大文字・小文字にする
次に文字列を大文字・小文字に変換する方法だ。
ここはメソッドと言われるものを活用する。
メソッドの意味がよくわからないが、とにかくmoji_exampleの後にピリオド(.)をつけて書けばいいようだ。
具体的には、
大文字⇒ moji_example.upper()
LEARN TO PROGRAM
小文字⇒ moji_example.lower()
learn to program
各単語の最初の文字だけ大文字にする⇒ moji_example.title()
Learn To Program
不要な余白を取り除く⇒ moji_example.strip
「□□ learn to program」だったものが、「learn to program」になる
moji.example = で定義しているものに触ることなく、変化させることが可能だから便利だ。
文字列の検索・含む・置換
次にmoji_exampleの中に特定の文字があるかどうか。
そして、特定の文字を別の文字に置き換える方法をみていこう。
文字検索はやっぱりfindだ。
moji_example.find(“to”)
「to」という文字があるかどうかを検索すると、実行後は 6 が結果として帰ってくる。
つまり、「learn to program」の文字列で「to」は左から6つ目に出現することがわかるんだ。
あるかどうかの真偽を問うboolean型でやってみよう。
今度は、in を使って、
“program” in moji_example
printしてみると⇒ True
が返ってくる。
つまり、「program」はmoji_exampleの中にあるってことだ。
文字列の置き換えは、やっぱりreplaceで、次のようになる。
moji_example.replace(“program”,”type”)
printすると、「」が「」に変更している。
見事に「」が「」で置き換わったんだ。
文字列の連結
今度は2つ以上の文字列を連結させる方法だ。
分かりやすいように人の名前を例にとってみよう。
first_name = “Taro”
last_name = “Yamada”
これを連結して、Taro Yamadaと表示させるには、以下のようにf(フォーマット)ストリングを使えばいい。
full_name = f”{last_name} {first_name}”
print(full_name)
これで、Yamada Taroと表示される。
特殊文字を記述するエスケープシーケンス
改行などの特殊文字を入れるときには、バックスラッシュを入れる。
バックスラッシュというのは、キーボードで言えば、ひらがなの「ろ」が書いてあるキーのことだ。
Windowsの場合は、\の表示になる。
なぜバックスラッシュが必要になるかというと、
moji_example = “文字文字文字”
上記の「文字」の途中に「”」を入れてしまうと、そこで文字列が終わったと勘違いしてしまうからだ。
moji_example = “文字”文字文字”
このまま実行するとエラーになってしまう。
だから、「\」を「”」の前に入れて、この「”」は終わりを示すものではないと教えてあげるわけだ。
具体的には、以下のようになる。
moji_example = “文字\”文字文字”
他の例もついでに挙げておこう。
ダブルクォーテーション⇒ \”
シングルクォーテーション⇒ \’
バックスラッシュ⇒ \\
改行⇒ \n
まとめ
以上で文字列操作についてはほとんどカバーできたと思うが、新しいものを習うたびに更新してく予定だ。
文字列の名前は誰がみても分かるような英語にするクセをつけると、グローバルで活躍するプログラマーになれるだろう。
次は、カッコいい英語名をつけるために活用できるツールを紹介するぞ。