Python:文字列内での途中改行(のコツ)
文字列が長くなりすぎるので行をまたいで1つの文字列を作りたい場合,
行末エスケープやトリプルクオテーションを使うことで実現できる.
通例は,
mystr = "Hellooooooooooooooooooooooooooooooooooooooooo\n \ world.\n \ I'm going to bed."
とするか,
mystr = """ Helloooooooooooooooooooooooooooooooooooooooooo world. I'm going to bed. """
として複数行のstringを一度の代入で生成できる.
本来コードの見易さのために行う書き方であるので,目的に沿うように
この例では複数行文字列内でインデントをしている(行頭を揃えている).
しかし実際にこのコードをemacsなどで書き,
生成した文字列を出力すると,
インデント分が空白文字として書き出されてしまい,
上の例では"world."の位置がだいぶ右へ行ってしまう.
見易さを犠牲にしてインデントをしなければいいが,それでは本末転倒である.
この問題は複数行で文字列連結をすることで当然解決できる.
mystr = "Helloooooooooooooooooooooooooooooooooooooooooo\n" \ + "world.\n" \ + "I'm going to bed."
多少見易くなってほとんど見たままの出力がされる.
また数値を代入したい場合も
foo = 1 bar = 3.3333333 hoge = "hogehoge" mystr2 = "foo = %d\n" % foo \ + "bar = %f\n" % bar \ + "hoge = %s" % hoge
で複数行でも一つの文字列に問題なく代入できる.