【Python】長い文字列を表示させて、改行のルールをマスターするよ!

【Python】長い文字列を表示させて、改行のルールをマスターするよ!

文字列を途中で改行させよう

Pythonでは文字列の中に改行を入れることは出来ない。こんな風に「””」の中で改行するとエラーになっちゃうんだ。

# codeing=utf-8

print("こんにちは。
はじめまして。
お元気ですか?")

▽ エラーが出る。

この問題の解決方法は2種類あるから順番にみていこう!

①:エスケープシーケンスを使う

Pythonには改行を表す記号がある。それはWindowsなら「¥n」で、Macなら「\n」だ。実際にやってみよう。

▽ Windowsの場合

print("こんにちは。¥nはじめまして。¥nお元気ですか?")

▽ Macの場合

print("こんにちは。\nはじめまして。\nお元気ですか?")

実行してみると、ちゃんと改行されて文字が表示されるはずだ。ポイントは命令自体は改行しないで、改行したいところに「¥n」や「\n」を入れることだ。

こんにちは。
はじめまして。
お元気ですか?

WindowsとMacで書き方が違うのでややこしいかもしれないけど、よく使うからしっかり覚えておこう。ちなみに「¥」や「\」で始まる特殊な記号を「エスケープシークエンス」と言う。前の記事でも「\’」が出てきたから、おさらいだね。

②:「”””」で囲めばそのまま表示できる!

エスケープシーケンスではプログラムに書いた内容と、実行したときに出てくる内容が違うから正直見にくいよね。「もっとそのまま書けないの!?」って思う人もいると思う。で、実はPythonにはそんな便利な方法があるんだ。それは「”」か「’」を3つ続けて囲む方法だ!

# codeing=utf-8

print("""こんにちは。
はじめまして。
お元気ですか?""")

上のように書いて実行すると、下の結果が出てくる。

こんにちは。
はじめまして。
お元気ですか?

ちゃんと改行されて表示されたね!今回は「”」で書いたけど、「’」を使っても同じ。好きな方で書けばいい。ちなみにこの書き方を「三重クォート」と呼ぶよ。

逆に改行させない書き方も覚えよう

長〜い文章を改行なしで表示させたいときもある。もちろん普通に改行せずに書けばきちんと動くんだけど、エディタで書くときにハミ出しちゃって不便だ。

▽ 右端が見切れちゃってスクロールしないといけないから見にくい。

この解決方法も2種類あるから、順番に見ていくよ。

①:文字列を連結させる

1つ目は以前にやった「文字列の連結」を使う方法だ。こんな風に書く。

# codeing=utf-8

print("こんにちは。" +
"はじめまして。" +
"お元気ですか?" +
"私は元気です。")

「””」の中で改行するとエラーになるけど、外なら改行できるので「+」を使って文字列を繋げていけばいいんだね。実行結果は下のようになる。

こんにちは。はじめまして。お元気ですか?私は元気です。

プログラムでは改行してるけど、実行結果では改行してないね。狙い通りに成功だ!

でも「”」で細かく区切ったり「+」を書いていくのは、ちょっとメンドクサイよね。そんなときに便利なのが次の方法だ。

②:エスケープシーケンスを使う

またまたエスケープシークエンスを使う。行の最後にWindowsなら「¥」、Macなら「\」を書くと改行できるんだ。実際に書いてみよう。

▽ Windowsの場合

# codeing=utf-8

print("こんにちは。¥
はじめまして。¥
お元気ですか?¥
私は元気です。")

▽ Macの場合

# codeing=utf-8

print("こんにちは。\
はじめまして。\
お元気ですか?\
私は元気です。")

結果は下のようになる。ちゃんと狙い通りだ!

こんにちは。はじめまして。お元気ですか?私は元気です。

この書き方は便利なのでおすすめだ。他のサイトや参考書でも使われることが多いからしっかり覚えておこう!「行末の¥ってなんだ?」なんてならないようにね。

print()直後の改行も消してみよう

最後にprint()の後の改行についても覚えておこう。実はprint()の後は勝手に改行されるようになってるんだ。

# codeing=utf-8

print("こんにちは。")
print("はじめまして。")
print("お元気ですか?")

▽ 実行すると改行される

こんにちは。
はじめまして。
お元気ですか?

この改行は消すこともできる。その書き方がこれだ。

# codeing=utf-8

print("こんにちは。", end="")
print("はじめまして。", end="")
print("お元気ですか?", end="")

実行してみると下のようになる。

こんにちは。はじめまして。お元気ですか?

解説

なんでこんな動きになるかというと、print()は引数を2つ持てるからなんだ。この「関数」と「引数」については前に出てきたから忘れてたらおさらいしよう!

print(①, ②)

①に表示させたい文字列をいれる。これは今までやってきたね。そして②に表示させた後に追加する文字列を入れられるんだ。もう一度さっきの書き方をみてみよう。

print("こんにちは。", end="")

この場合、①は”こんにちは”だ。そして②は””だけで空っぽだ。つまり「何も入れないよ」と命令してるわけ。このおかげで「文字列も改行も、なにもいれない」って動きになるんだね。

もちろん②には空っぽじゃなくて文字列を入れることもできる。

# codeing=utf-8

print("こんにちは。", end="a")
print("はじめまして。", end="b")
print("お元気ですか?", end="c")

実行するとこう↓

こんにちは。aはじめまして。bお元気ですか?c

これで改行についての話は終わりだ!

今日のまとめ

  • 改行のルールを覚えよう!
  • print()のように関数に2つの引数を入れる書き方を覚えよう!