Home > Python > [Python]文字列を複数行に分けて書きたい

[Python]文字列を複数行に分けて書きたい

プログラミングをしていると、長い文字列を書きたい場面が少なからず存在します。

例えばこんな感じ。
x = 'aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff'


可読性などを無視してしまえばこうやって書くのが一番素直なのかもしれませんが、
当然そんなわけがないので、\(バックスラッシュ)を使って複数行にして、

x = 'aaaaaaaaaa\
     bbbbbbbbbb\
     cccccccccc\
     dddddddddd\
     eeeeeeeeee\
     ffffffffff'

という風に書いてみました。

見た目はずいぶんすっきりしたのですが、
こうしてしまうと出力が以下のようになり、非常に困ります。

>>> x
'aaaaaaaaaa     bbbbbbbbbb     cccccccccc     dddddddddd     eeeeeeeeee     ffffffffff'

こういった場合は以下のように書くと、スペースも入らず、目当ての文字列が得られるようです。

x = 'aaaaaaaaaa' \
    'bbbbbbbbbb' \
    'cccccccccc' \
    'dddddddddd' \
    'eeeeeeeeee' \
    'ffffffffff'

>>> x
'aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff'

知れば知るほど便利なPython。

———————————————余談
x  = ‘aaaaaaaaaa’
x += ‘bbbbbbbbbb’
x += ‘cccccccccc’
x += ‘dddddddddd’
x += ‘eeeeeeeeee’
x += ‘ffffffffff’

って書いても同じなんですけどね。

Comments:7

通りすがり 2008/10/09

こんなのもある。
x = ”’
aaaaaa
bbbbbb
cccccc
”’

hohehohe2 2008/10/09

x = “”"
aaaaaa
bbbbbb
cccccc
“”"

あるいは

x = ”’
aaaaaa
bbbbbb
cccccc
”’

ですね > 通りすがりさん

hohehohe2 2008/10/09

おっとサーバーが勝手に変換するのか。

”’ ー> クウォート3つ
“”” ー> ダブルクウォート3つ

です。

tai 2008/10/09

>通りすがりさん
初めまして。
クウォート3つって、ドキュメント文字列にしか使えないものだとばかり思っていました。
こういう使い方もあるんですね。

>hohehohe2さん
いつもありがとうございますっ。

ちなみにこの方法はインデントしてる場合はどうなるんでしょうか。
‘xxx’と同じでスペースも認識してしまうんですかね。

後で試してみよっと。

hajime 2008/10/09

余談のやり方でやってますた。こんな方法が!

hohehohe2 2008/10/09

はいスペースも改行も全て文字の中に入ります。あとraw文字列も有効です。

>>> print “”"
… a\nb
… “”"

a
b

>>> print r”"”
… a\nb
… “”"

a\nb

tai 2008/10/09

>hajimeさん
まだまだ奥が深いPython。。

>hohehohe2さん
raw文字列ってのがあるんですね。
なるほど!これは便利そうです。

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.taikomatsu.com/2008/10/08/python%e6%96%87%e5%ad%97%e5%88%97%e3%82%92%e8%a4%87%e6%95%b0%e8%a1%8c%e3%81%ab%e5%88%86%e3%81%91%e3%81%a6%e6%9b%b8%e3%81%8d%e3%81%9f%e3%81%84/trackback/
Listed below are links to weblogs that reference
[Python]文字列を複数行に分けて書きたい from memlog

Home > Python > [Python]文字列を複数行に分けて書きたい

Return to page top