変数で長い文字列を扱うことがあります。
JavaScriptであれば、「'(シングルクォーテーション)」か「"(ダブルクォーテーション)」で囲って、「+」でつなぐことで複数行に分けてもエラーになりません。
(文字列は前回記事参照)
mytxt = '連番\t氏名\t氏名(カタカナ)\t性別\t電話番号\t生年月日' +'1\t長崎勝美\tナガサキカツミ\t女\t0952147154\t1996/11/08' +'2\t中井萌\tナカイモエ\t女\t0192772541\t1995/05/17' +'3\t木内日菜\tキウチヒナ\t女\t0922667757\t1995/08/17' +'4\t萩原利彦\tハギワラトシヒコ\t男\t0855019844\t1969/04/01' +'5\t小倉琴音\tオグラコトネ\t女\t0745910570\t1964/01/19' +'6\t土屋富夫\tツチヤトミオ\t男\t0868249650\t1990/05/31' +'7\t北島文雄\tキタジマフミオ\t男\t0964669794\t1977/08/06' +'8\t島妃菜\tシマヒナ\t女\t0745906535\t1988/06/08' +'9\t児島夏向\tコジマカナタ\t男\t0672503524\t1996/12/17' +'10\t織田良明\tオダヨシアキ\t男\t0847790635\t1973/03/08';alert(mytxt);
じゃあ、Pythonなら?
調べてみたら3つあったので、まとめてみました。
Pythonで長い1文を複数行に分けるには?
「\(バックスラッシュ)」を使う
上記のJavaScriptの例では「+」を使っていましたが、Pythonでは「\(バックスラッシュ)」に変えます。
mytxt = '連番\t氏名\t氏名(カタカナ)\t性別\t電話番号\t生年月日' \'1\t長崎勝美\tナガサキカツミ\t女\t0952147154\t1996/11/08' \'2\t中井萌\tナカイモエ\t女\t0192772541\t1995/05/17' \'3\t木内日菜\tキウチヒナ\t女\t0922667757\t1995/08/17' \'4\t萩原利彦\tハギワラトシヒコ\t男\t0855019844\t1969/04/01' \'5\t小倉琴音\tオグラコトネ\t女\t0745910570\t1964/01/19' \'6\t土屋富夫\tツチヤトミオ\t男\t0868249650\t1990/05/31' \'7\t北島文雄\tキタジマフミオ\t男\t0964669794\t1977/08/06' \'8\t島妃菜\tシマヒナ\t女\t0745906535\t1988/06/08' \'9\t児島夏向\tコジマカナタ\t男\t0672503524\t1996/12/17' \'10\t織田良明\tオダヨシアキ\t男\t0847790635\t1973/03/08'print(mytxt)
詳しく書くと、Pythonは変数に複数の文字列リテラルを入れるとき、「+」が要りません。
a = 'hoge' 'fuga'print(a)# ⇒ hogefuga
「\(バックスラッシュ)」は、次の行に続くという意味を持つそうです。
丸括弧「()」を使う
Pythonでは、カッコ内で改行ができます。
mytxt = ('連番\t氏名\t氏名(カタカナ)\t性別\t電話番号\t生年月日''1\t長崎勝美\tナガサキカツミ\t女\t0952147154\t1996/11/08''2\t中井萌\tナカイモエ\t女\t0192772541\t1995/05/17''3\t木内日菜\tキウチヒナ\t女\t0922667757\t1995/08/17''4\t萩原利彦\tハギワラトシヒコ\t男\t0855019844\t1969/04/01''5\t小倉琴音\tオグラコトネ\t女\t0745910570\t1964/01/19''6\t土屋富夫\tツチヤトミオ\t男\t0868249650\t1990/05/31''7\t北島文雄\tキタジマフミオ\t男\t0964669794\t1977/08/06''8\t島妃菜\tシマヒナ\t女\t0745906535\t1988/06/08''9\t児島夏向\tコジマカナタ\t男\t0672503524\t1996/12/17''10\t織田良明\tオダヨシアキ\t男\t0847790635\t1973/03/08')print(mytxt)
角括弧[]や波括弧{}でも改行は可能です。
文字列の場合は、丸括弧が無難でしょう。
トリプルクォート(三連引用符)を使う
「'(シングルクォーテーション)」か「"(ダブルクォーテーション)」を3つ並べるやり方です。
mytxt = '''連番\t氏名\t氏名(カタカナ)\t性別\t電話番号\t生年月日1\t長崎勝美\tナガサキカツミ\t女\t0952147154\t1996/11/082\t中井萌\tナカイモエ\t女\t0192772541\t1995/05/173\t木内日菜\tキウチヒナ\t女\t0922667757\t1995/08/174\t萩原利彦\tハギワラトシヒコ\t男\t0855019844\t1969/04/015\t小倉琴音\tオグラコトネ\t女\t0745910570\t1964/01/196\t土屋富夫\tツチヤトミオ\t男\t0868249650\t1990/05/317\t北島文雄\tキタジマフミオ\t男\t0964669794\t1977/08/068\t島妃菜\tシマヒナ\t女\t0745906535\t1988/06/089\t児島夏向\tコジマカナタ\t男\t0672503524\t1996/12/1710\t織田良明\tオダヨシアキ\t男\t0847790635\t1973/03/08'''print(mytxt)
この方法は「」を入れなくても、出力で改行されています。
出力は1行で欲しい場合、この方法は使えません。
ちなみに、複数行のコメントアウトもトリプルクォートでするのが一般的なのだとか。
a = 3'''次の処理は、aの3乗を計算しています。'''print(a ** 3)# ⇒ 27
まとめ
長い1文を複数行で書く方法を3つ書きました。
状況に応じて使い分けられるように、それぞれのメリット・デメリットを理解することから始めたいと思います。
