I ♥ WordPress

[Python勉強日記:005] 文字列 その1
2007/11/12 23:33 posted by kunkichi

わー、いきなり放置状態!(爆)

いやー、ほんと忙しいのですよ、最近。帰ってきてもブログ更新するエネルギーがなくて、土日も基本的には何もせず完全に引きこもり状態(笑)

これではいかん、ということで、がんばって進めます。今日は『文字列』。

クォーテーション

Pythonで文字列を使う場合は、Perl や PHP と同じく、クォーテーションを使う。
>>> 'Hello, World'
'Hello, World'
>>> "Hello, World"
'Hello, World'
こんな感じでシングルクォーテーションもダブルクォーテーションも普通に使えます。

クォートの中でクォートを文字列として使いたい場合はエスケープする。
>>> 'O\'reiily'
"O'reilly"

ただし、ダブルクォーテーションの中でシングルクォーテーションを使う場合や、その逆の場合はクォートする必要はありません。

>>> "O'reilly"
"O'reiily"

で、Perl や PHP と違うところは、シングルクォーテーション/ダブルクォーテーションの違いは全くなくて単にエスケープしなくていいということだけ。Perl や PHP だと ダブルクォーテーション内の変数は展開されるんだけど、Pythonではそうではないみたい。
>>> a='string'
>>> "a"
'a'
>>> a
'string'
んー、変数を使いたい場合は文字と変数を連結させて使うのかな? 書籍にははっきり書いてない。

とりあえず、文字の連結は単に並べて書くだけ。一応”+”も使えます。
>>> "apple" 'lemon' "orange"
'applelemonorange'

エスケープ

上にも書いたエスケープは普通に使えるようなんだけど、一つだけ補足。

例えばタブをエスケープする。
>>> 'a\tb\tc'
'a\tb\tc'
おっと、エスケープされない。

この場合はprint文を使う。
>>> print 'a\tb\tc'
a       b       c

raw文字列

エスケープシーケンスを使わずに特殊文字を使う方法もある。例えばWindowsのパスの表記を例にしてみる。

>>>print 'c:\test\test'    
c:      est     est
わ、えらいことになっている。こういった場合にraw文字列を使う。クォートの前に”r”をつける。

>>> print r'c:\test\test'
c:\test\test
q// とか qq// っぽいね。

もちろん、\\みたいな感じで表現することも出来るけど、こっちのほうが便利。

トリプルクォーテーション

複数行をまとめてヒアドキュメントみたく使う場合は、トリプルクォーテーションを使う。

>>> HERE = """
... apple
... lemon
... orange"""
>>> '\napple\nlemon\norange'
改行は自動的に\nに置き換えられるね。print文を使うと、入力したままに表示される。
>>> print HERE
 
apple
lemon
orange

文字列いろいろ

じゃここからはいろいろ文字列で遊んでみる。

まずは連結。
>>> "abc" + "def"
'abcdef'

次は文字数を数えてみる。
>>> len("abc")
3

繰り返し。
>>> "-"*10
'----------'

forループで順番に文字を表示してみる。
>>> for c in "apple": print c,
...
a p p l e

inを使うと、文字列の中にとある文字が含まれているかのチェックが出来る。
>>> "a" in "apple"
True
>>> "a" in "lemon"
False

うー、疲れたー、インデクシングとスライシングはまた明日〜(爆)

コメント&トラックバック

トラックバックURL





このページの先頭へ