0

わかりました、私は他の誰かに代わってこの質問をしますが、それが可能かどうか、またどのように可能かについても知りたいです.

文字列を生成する特定のコード行があるとしましょう

残り時間: 4

この文字列が印刷された後、「4」の値を編集して「3」に変更し、同じ行に新しい文字列を再印刷して、Time left: 4 を Time left に置き換える方法はありますか? : 3 改行を発生させずに印刷します。

私が説明するために最善を尽くした質問を理解していただければ幸いです。

4

3 に答える 3

6

キャリッジ リターン ( ) を出力し、出力引数に追加して、ステートメントが改行を書き込んでいない\rことを確認します。各印刷の後、必ず を使用して標準出力をフラッシュしてください。例えば:printend=''sys.stdout.flush()

import time
import sys

for i in range(4, 0, -1):
    print('\rTime left:', i, end='')
    sys.stdout.flush()
    time.sleep(1)

Python 2.x では、 whereprintは関数ではなくステートメントであり、末尾にコンマを追加して改行を防止します。

import time
import sys

for i in range(4, 0, -1):
    print '\rTime left:', i,
    sys.stdout.flush()
    time.sleep(1)
于 2013-09-11T15:50:27.737 に答える
2

1 つの方法は、バックスペース エスケープ文字 ( \b) を出力することです。これにより、テキスト カーソルが 1 文字戻ります。ただし、後でテキストを置き換えるために何かを印刷するのはあなたの責任です。

たとえば、ターミナルの現在のテキストが であるTime left: 4場合に を印刷する"\b"と、ユーザーには何も変更されていないことがわかります。ただし、 を印刷"\b5"すると、5 に置き換えられます。

于 2013-09-11T15:52:10.517 に答える