文字列リテラル

広告

文字を一定の順序でならべたものが文字列です。例えば「Hello」は5つの文字が順序を「H」「e」「l」「l」「o」の順で並べられたものです。文字列リテラルのリテラルとは定数などのように数値や文字列の実際の値が単に記述されているもののことです。

組み込み型
  + 数値型
  |  + 整数
  |  + 長整数
  |  + 浮動小数点
  |  + 複素数
  + シーケンス型
  |  + 文字列
  |  + ユニコード文字列
  |  + リスト
  |  + タプル
  + マップ型
  |  + 辞書(ディクショナリ)
  + ファイルオブジェクト

文字列はPythonで用意されている基本的な組み込み型の一つで、シーケンス型に含まれています。シーケンスと言うのは複数の要素から構成されるもので、要素が順番に並んでいます。文字列の場合は文字と言う要素が順番に並んでいると考えることが出来ます。

プログラムの中で文字列を表すいくつかの方法がありますが、基本的な方法は次の二つです。

"文字列"
'文字列'

対象となる文字の集まりをダブルクオーテーション("")で囲うか、シングルクオーテーション('')で囲います。

他のプログラミング言語ではダブルクオーテーションとシングルクオーテーションで囲った場合ではエスケープ処理などの扱いが異なるものがほとんどですが、Pythonにおいてはどちらの文字列もまったく同じです。

実際には次のように記述します。

"Hello"
'ByeBye'
文字列の標準出力への出力

今までのサンプルでも使用してきましたが、文字列を画面に出力するという処理は頻繁に使用されます。そこで、標準出力へ文字列などを出力する「print」文について簡単に確認しておきます。(Python2.x系ではprintは関数ではなく文です)。

print([expression ("," expression)* [","]])

「print」文は引数に指定されたオブジェクトを標準出力に出力します。

print "Hello!"

「print」文は自動的に改行(¥n)を追加して出力します。よって上記は「Hello!」と出力後に改行を出力します。

複数の引数を指定する場合はカンマ(,)で区切って記述します。

print "Hello!", "Satou"

「print」文では行の先頭から出力される場合を除いて空白が1つ出力されてから出力されます。上記の場合で言えば「Hello!」は行頭なので単に出力されますが、「Satou」は「Hello!」の後なので空白が1つ追加されて出力されます。よって上記は「Hello! Satou」と出力されます。(そしてその後で改行が出力されます)。

※カンマで区切って出力する場合はこのように空白が1つ含まれてしまいますので、空白を入れたくない場合は出力する文字列を連結してから出力して下さい。

なお「print」文は最後に自動的に改行(¥n)が出力されますが、引数の最後がカンマ(,)で終わっている場合は改行が出力されません。

print "Hello!", "Satou",
print "ByeBye"

上記の場合は「Hello! Satou」と出力された後でカンマ(,)で終わっているので改行は出力されません。そして次の「print」文では行頭からの出力ではないのでまず空白が1つ出力された後で「ByeBye」が出力されます。よって上記は「Hello! Satou ByeBye」と出力されます。(そして2番目のprint文はカンマで終わっていませんので改行が出力されます)。

「print」文の引数に文字列以外を指定した場合には、まず文字列に変換されてから出力が行われます。

サンプルコード

では実際に試してみます。

#coding: UTF-8

print "Hello!", "Satou",
print "ByeBye"

print 'One', 'Two', "Three"
print "Four"

上記を「test1-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

文字列リテラル

( Written by Tatsuo Ikura )