文字



「Python」の文字列


文字列は、「"(ダブルクォート)」「'(シングルクォート)」で囲む。

変数 = "Hello world"
変数 = 'Hello world'

「"(ダブルクォート)」の中では、 「'(シングルクォート)」が使用でき、
「'(シングルクォート)」の中では 、「"(ダブルクォート)」が使用可能。
「"(ダブルクォート)」 の中で「"(ダブルクォート)」を、「'(シングルクォート)」の中で「'(シングルクォート)」を使用するには、「\(バックスラッシュ)」を用いて引用符をエスケープ(無効化)して使用することも可能。


バックスラッシュ(\)を用いることで、複数行に分けることができます。
変数 = 'Sample \
Text'


「"(ダブルクォート)」「'(シングルクォート)」の前に、「 r」「 R」をつけると、「エスケープシーケンス」が無視される。
変数 = 'aaa\nbbb' # \n は「改行」とみなされる
変数 = r'aaa\nbbb' # \n は「\(バックスラッシュ)」と小文字「n」とみなされる


「三重ダブルクォート("""文字列""")」「三重シングルクォート('''文字列''')」 は、複数行にまたがった文字列が記述可能。
変数 = """Sample Test 01
Sample Test 02
Sample Test 03
"""
複数の文字列をスペースで区切ることで、連結可能。
print 'Sample' 'Text'



エスケープシーケンス(\x)

\改行バックスラッシュと改行が無視される
\\バックスラッシュ(\)
\'シングルクォート(')
\"ダブルクォート(")
\aベル(BEL)
\bバックスペース(BS)
\fフォームフィード(FF)
\n改行(LF)
\r復帰(CR)
\tタブ(TAB)
\v垂直タブ(VT)
\nnn8進表記文字(nは0~7)
\xnn16進表記文字(nは0~f)
\uxxxxユニコード文字xxxx (例: u"\u3042")
\U....xxxxユニコード文字xxxxxxxx (例: U"\U00003042")
\N{name}Unicodeデータベース文字 (例: u"\N{HIRAGANA LETTER A}")



文字列のフォーマット(%)

「% 演算子」を用いて、C言語の「printf()」関数に似た記法が可能。
SampleText = "Sample Number" SampleNum = 987654321 msg = "Test Message: %s (%d)" % (SampleText , SampleNum) print msg #=> Test Message: Sample Number (987654321)


文字列演算子の種類
%s文字列
%d整数
%f浮動小数点数
%x16進数
%o8進数
%%%自身を表示


変数 = "%s" % "ABC" #=> ABC
変数 = "%d" % 123 #=> 123
変数 = "%f" % 1.23 #=> 1.23
変数 = "%x" % 255 #=> ff
変数 = "%o" % 255 #=> 377
変数 = "%%%d" % 80 #=> %80

「%」に続く数値で、「文字幅」「桁数」を指定可能。

print "|%3s|" % 'ABC' #=> | ABC| : 右寄せ3文字分
print "|%-3s|" % 'ABC' #=> |ABC | : 左寄せ3文字分
print "|%3d|" % 123 #=> | 123| : 右寄せ3桁
print "|%-3d|" % 123 #=> |123 | : 左寄せ3桁
print "|%+3d|" % 123 #=> | +123| : ±符号付き
print "|%3.2f|" % 1.23 #=> | 1.23| : 全体桁数.少数点以下の桁数
print "|%05d|" % 123 #=> |00123| : 0埋め