はじめに
前回の続きです。
前回は変数と演算子の話を書きました。
今回は、文字列ついて書きたいと思います。
今回テストした環境
- OS:OS X Yosemite 10.10.5
- Python:3.5.1
文字列
今回はPython3での文字列の取り扱いについて書いていきたいと思います。 ちなみにPython3は文字列の標準がUnicodeになっているので、世界中のすべての言語の文字と記号を使うことができます。Python2との大きな違いにもなっています。
※Python2とPython3との違いは下記の記事がわかりやすかったです。
なお、他のプログラミング言語との違いとして、Pythonの文字列はimmutable(変更不能)なので、書き換えることができないことに注意が必要です。
文字列の作成
では、さっそく文字列を作ってみましょう。
文字列はシングルクォート (‘…’) もしくダブルクォート (“…”) で囲んで作成します。
>>>'hello' 'hello' >>>"how low" 'how low'
ヒアドキュメントを書くにはトリプルクォートを使用します。
長い文字列を作成する場合に便利ですね。
hamlet = '''To be, or not to be: that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? '''
文字列に型変換
str()関数を利用すると他のデータ型(integerやfloat)を文字列に変換できます。
>>>str(120.23) '120.23' >>>str(True) 'True'
文字列の操作
#文字列の連結 >>>'hello' + 'world' 'helloworld' #文字列の反復 >>>'hey!' * 3 'hey!hey!hey!'
インデックス表記による文字の抽出
文字列の中から指定した位置の文字を取り出すには「[]」を使用します。
#文字列を用意 >>>text = 'abcdefghijklmnopqrstuvwxyz' #先頭の文字を指定 >>>text[0] 'a' >>>text[1] 'b' #マイナスを指定することもでき、末尾は-1になる >>>text[-1] 'z' >>>text[-2] 'y'
インデックス表記に加えてPythonにはスライス機能も用意されています。 インデックス表記では指定した位置の文字を取り出すことができますが、スライス機能を使えば、部分文字列を取り出すことができます。
使い方は [開始位置:終了位置:ステップサイズ]と記載します。
イメージしづらいと思うので、実際に使用してみましょう。
#文字列を用意 >>>text = 'abcdefghijklmnopqrstuvwxyz' #21文字から部分文字列を取得(インデックスは0から開始されるので、指定するときは-1しておく) >>>text[20:] 'uvwxyz' #21文字目から23文字目まで取得 >>>text[20:23] 'uvw' #4文字ごとに文字を取り出してみる >>>text[::4] 'aeimquy' #11文字目から21文字目まで2文字ごとに取り出してみる >>>text[10:21:2] 'kmoqsu'
ちなみにステップサイズをマイナスにすると、逆にステップされる
つまりスライス機能を利用して文字列をリバースすることができます。便利ですね。
#文字列を用意 >>>text = 'abcdefghijklmnopqrstuvwxyz' #ステップサイズを-1にする >>>text[::-1] 'zyxwvutsrqponmlkjihgfedcba'
文字列操作関数
Pythonには文字列を操作するため関数が多く定義されています。 実際にいくつか利用してみましょう。
#文字列を用意 >>>text = 'abcdefghijklmnopqrstuvwxyz' #文字列の長さを取得 >>>len(text) 26 #文字列の先頭だけ大文字に変換 >>>text.capitalize() 'Abcdefghijklmnopqrstuvwxyz' #文字列を大文字に変換 >>> text.upper() 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
注意点としては、再度記載しますが、文字列はimmutable(変更不能)なので、関数を利用しても、文字列が実際に書き換わっているわけではありません。 変更後の値を取得する場合は、別の変数などを用意しておき、そこに結果を格納しておく必要があります。
その他の文字列操作関数については標準ドキュメントを一読しておくことをお勧めします。
今回は以上です。
続き、記載しました。