Pythonでエスケープ文字rを使用中に発生した問題

758 ワード

Pycharmでエスケープ文字rを使うのとIDLEでrを使うのとでは結果が違います.
例は次のとおりです.
print("  !\r  Python!")

出力結果:
  Python!

前の「こんにちは!」がなくなりました.
IDLEに同じ文を入力すると、次のようになります.
こんにちは!Pythonです!
この問題は私を長い間悩ませていたが、資料を調べた後、以下のように説明された.
  および  \r いずれも特殊な制御子で、これらは古いテレタイプライターの機能から来ています.
 newlineが新しい行を開くのです.
\r Carriageです return, 印刷ヘッドは行頭に戻ります.なければ直接r では、この行は上書き印刷されます.
現在ではオペレーティングシステムごとに処理が異なり,端末表示も異なる.
idleでは実現できません \rの機能.
つまり、すべてはPycharmに準じて、IDLEではrの機能を実現できないということです.
そしてrの機能は、カーソルを行頭に戻して、前の内容を上書きすることなので、「Pythonです!」「こんにちは!」を上書きした結果になります.