DESIGNMAP

  1. TOP
  2. 公開講座
  3. ゼロから始めるPython入門
  4. 文字列 ー ゼロから始めるPython入門【Vol.18】

文字列 ー ゼロから始めるPython入門【Vol.18】

今回は文字列のポイントをまとめていきます。

文字列はダブルクオートかシングルクオートでくるみます。どちらでも同じです。

>>> "こんにちは"
'こんにちは'
>>> 'こんにちは'
'こんにちは'

文字列の中でダブルクォートを使いたいときは、シングルクォートを使います。逆にシングルクオートを使いたいときは、ダブルクオートを使ってください。

>>> '<header class="Works">'
'<header class="Works">'
>>> "<header class='Works'>"
"<header class='Works'>"

トリプルクォートで複数行の文字列の作成

Atomを起動します。[ファイル]メニュー→[新規ファイル]をクリックします。[ファイル]メニュー→[保存]をクリックします。新規ファイルを生成以下のコード書いて、Vo.3でつくった「python-study」フォルダ内に、下記のコードを書いて「string1.py」というファイル名で保存します。

str = """こんにちは
こんばんは
さようなら"""

print(str)

実行すると、下記のように表示されます。

こんにちは
こんばんは
さようなら

ひとつ注意したいのは下記のように書くと、

str = """
こんにちは
こんばんは
さようなら
"""
print(str)

下記のように空行が発生してしまう点です。


こんにちは
こんばんは
さようなら

下記のように記述すると空行を防げます。

str = """\
こんにちは
こんばんは
さようなら\
"""

print(str)
こんにちは
こんばんは
さようなら

バックスラッシュのあとに改行をすると、改行を無視します。このバックスラッシュはエスケープシーケンスといいます。

トリプルクォートによる文字列の優れているところは、改行、スペース、インデントがそのまま反映される点です。

str = """\
こんにちは
    こんばんは
        さようなら\
"""

print(str)
こんにちは
    こんばんは
        さようなら

エスケープシーケンス

特殊文字を表したいときに使うのがエスケープシーケンスです。一番使うのは改行です。
「python-study」フォルダ内に、下記のコードを書いて「string2.py」というファイル名で保存します。

str = "こんにちは\nこんばんは\nさようなら"

print(str)

実行すると下記のように改行されます。

こんにちは
こんばんは
さようなら

ダブルクォートの中で、ダブルクォートを表示したいとき、シングルクォートの中でシングルクォートを表示したいときもエスケープシーケンスを利用します。

str = "こんにちは\"こんばんは\"\'さようなら\'"
str2 = 'こんにちは\'こんばんは\'さようなら'

print(str)
print(str2)
こんにちは"こんばんは"'さようなら'
こんにちは'こんばんは'さようなら

文字列の結合

「python-study」フォルダ内に、下記のコードを書いて「string3.py」というファイル名で保存します。

name = "太郎"
message = "こんにちは"

str = name + "さん。" + message

print(str)

実行すると下記のように表示されます。

太郎さん。こんにちは

+演算子を使います。

スポンサーリンク

オフセットをつかった文字の抽出

これはリストと全く同じ仕様です。
実行対話モードで確認すると、リストと同じように振る舞います。

>>> txt = "こんにちは"
>>> txt[0]
'こ'
>>> txt[-1]
'は'

詳しくは「リスト ー ゼロから始めるPython入門【Vol.6】」をご覧ください。

スライスをつかった文字の抽出

これもリストと全く同じ仕様です。
実行対話モードで確認すると、リストと同じように振る舞います。

>>> txt = "こんにちは、こんばんは"
>>> txt[3:5]
'ちは'
>>> txt[:5]
'こんにちは'
>>> txt[6:]
'こんばんは'
>>> txt[-5:]
'こんばんは'
>>> txt[::-1]
'はんばんこ、はちにんこ'
>>> txt[:10:2]
'こにはこば'

詳しくは「リスト ー ゼロから始めるPython入門【Vol.6】」をご覧ください。

文字列の長さを取得

len()関数を使うと文字列を文字にばらしてリストに変換ができます。
これもリストと全く同じ仕様です。

実行対話モードで確認してみましょう。

>>> len("こんばんは")
5

文字列からリストへの変換

list()関数を使うと文字列を文字にばらしてリストに変換ができます。
実行対話モードで確認してみましょう。

>>> list("こんにちは")
['こ', 'ん', 'に', 'ち', 'は']

文字列からリストへの変換には、split()関数もよく使われます。

>>> txt = "100円,鉛筆,HB"
>>> txt.split(",")
['100円', '鉛筆', 'HB']

カンマ区切りの文字列をリストへ変換しました。
この場合、split()の引数に区切り文字であるカンマを渡します。

文字列がタブ、スペース、改行で区切られていれば、split()の引数は空で機能します。

>>> txt = "100円 鉛筆 HB"
>>> txt.split()
['100円', '鉛筆', 'HB']

リストから文字列への変換

join()関数を使うと、リストから文字列へ変換ができます。
実行対話モードで確認してみましょう。

>>> fruits = ["みかん", "いちご", "すいか"]
>>> txt = "、".join(fruits)
>>> txt
'みかん、いちご、すいか'
>>> fruits = ["みかん", "いちご", "すいか"]
>>> txt = "".join(fruits)
>>> txt
'みかんいちごすいか'

ちなみに文字列型へ型変換するstr()関数をリストに使うと、意図しない結果になります。

>>> fruits = ["みかん", "いちご", "すいか"]
>>> str(fruits)
"['みかん', 'いちご', 'すいか']"

角括弧やカンマがそのまま文字列になってしまいます。

format()を使った文字列の中に変数を埋め込み

「python-study」フォルダ内に、「string3.py」というファイル名で保存します。

name = "太郎"
message = "こんにちは"

html = """\
<h1>{n}</h1>
<p>{m}</p>\
""".format(n=name, m=message)

print(html)
<h1>太郎</h1>
<p>こんにちは</p>

関数 ー ゼロから始めるPython入門【Vol.10】」で学んだ名前付き引数を使っています。

名前付き引数を使わず、下記のように書くことこともできます。

name = "太郎"
message = "こんにちは"

html = """\
<h1>{0}</h1>
<p>{1}</p>\
""".format(name, message)

print(html)

スポンサーリンク

関連記事

プロフィール

DESIGNMAP
ディレクター・Web制作者
ON VISITINGを制作・運営。
お問い合わせ