Pythonで文字列を表す方法は以下のように四通りあります。
>>> s = 'Hello, how are you?'
>>> s = "Hi, what’s up"
>>> s = '''Hello,
>>> how are you'''
>>> s = """Hi,
>>> what’s up?"""
基本的には、「’」か「”」で文字列を囲うだけです。一重の場合は改行ができませんが「’’’」や「”””」のように三重に囲うと、文字列の途中で改行できます。
「’」と「”」は、文字列中に出てくる文字によって使い分けます。例えば、以下の様に、文中に「’」が出てくる場合は、「’」で文字列指定を行うとエラーの原因となります。
>>> 'Hello, what's up you?' File "", line 1 'Hello, what's up you?' ^ SyntaxError: invalid syntax
この場合、「”」を使うことでエラーを解消することができます。
>>> "Hello, what's up you?"
"Hello, what's up you?"
「’’’」や「”””」で囲むと、入力する文字列の途中に改行を入れることができます。改行は「/n」で表されます。(ちなみに、tab は「\t」で表されます。)
>>> '''Hello,
>>> How are you'''
'Hello,\nHow are you'
文字列はリストと同様にコンテナ型です。コンテナ型は第3回で説明したようにオブジェクトの集まりで、オブジェクトを操作することができます。文字列においてリストの各要素に相当するものが各文字ということになります。したがって、リストと全く同様、インデクス指定やスライス指定を行うことができます。以下例を見てゆきましょう。
インデクス指定:
>>> a = "hello"
>>> a[0]
'h'
>>> a[1]
'e'
>>> a[-1]
'o'
スライス指定:
>>> a = "hello, world!"
>>> a[3:6]
'lo,'
>>> a[2:10:2]
'lo o'
>>> a[::3]
'hl r!'
a[3:6]は、左から4番目から5番目の要素(文字列の場合は文字)を指定しています。a[2:10:2]は、2番めの文字から始まって、一つ置きに9文字目まで文字を取り出します。a[ : :3]は、最初から最後まで2つ置きに文字を取り出します。スライス構文の定義については第3回を参照してください。
複雑な記号などを扱いたいときは、クォーテーションの前に「u」をつけることで、ユニコードで文字を指定することもできます。
>>> u'Hello\u0020World !'
u'Hello World !'
\u0020 は、ユニコード値 0x0020 に相当するユニコードキャラクターを表します。0x0020 はスペースを表すので、Pythonはスペースに表示を置き換えてくれます。(ユニコードを使った文字の扱いに関するさらに詳しい情報はここ。)
次回は文字列の操作についてまとめます。