読者です 読者をやめる 読者になる 読者になる

タイトルって難しい。

学力も体力もない人間の雑記帳。

エスケープシーケンスによるちょっとおもしろい出力

Python

コンソールでなにか文字を出力する際に、通常のやり方だとどんどん改行されていきます。
例えば、下記のPythonのコードを実行したとしましょう。

# -*- coding: utf-8 -*-
for i in range(1,101):
    print("{}".format(i))

出力結果はただひたすら、1 2 3 … 100と改行されながら出力されます。

1
2
…
99
100

改行しないという指定とかもありますが、できればストップウォッチみたいな感じでカウントアップしたい…と考えていたところ、意外にも簡単なやり方でできるそうです。
それは、エスケープシーケンスの"\r"を加えること。ね、簡単でしょう?
たとえば、さきほどのコードをこのように改良します。

# -*- coding: utf-8 -*-
import time
for i in range(1,101):
    print("\r{}".format(i),end = "")
    time.sleep(0.5)
print()

1〜100までうまくカウントアップされました。
このエスケープシーケンスですが、「キャリッジリターン」と呼ばれるもので、よくエディタにある"CR"のことだそうです。

このやり方を応用すると、なにかアルゴリズムを出力した際にずらずら〜っとならずに済むかもしれませんね(自己満足ですが)。