[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’

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

「[Python]文字列を複数行に分けて書きたい」への8件のフィードバック

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

  2. x = “””
    aaaaaa
    bbbbbb
    cccccc
    “””

    あるいは

    x = ”’
    aaaaaa
    bbbbbb
    cccccc
    ”’

    ですね > 通りすがりさん

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

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

    です。

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

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

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

    後で試してみよっと。

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

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

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

    a
    b

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

    a\nb

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

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

コメントを残す

メールアドレスが公開されることはありません。