[ 参照リンク:Python | print()の終了パラメーター](https://www.imangodoc.com/166.html)
printのパラメータを詳しく見てみましょう:print(value、sep = ''、end = '\ n'、file = sys.stdout、flush = False)
値は印刷する文字列であり、sepは値の間の間隔です(実際に間にスペースがあることを確認するために( "Hello"、 "Python")を印刷できます)
endは、印刷が完了した後に印刷されるものです。printのデフォルトでは、最後に\ n、つまり新しい行が印刷されます(printを折り返さないようにし、endパラメーターを ''に変更するだけです)。
file = sys.stdoutはどこに出力されますか? sys.stdoutは、標準の出力デバイスであるシステムのコンソールです。
Flush = Falseは、printがバッファーを開かないことを意味します。バッファーを開くには、flushをTrueに設定するだけで済みます。
カウントダウンプログラム、ここでは5秒のカウントダウン
import time
print( "カウントダウンプログラム")
for x in range(5,-1,-1):
mystr = "カウントダウン" + str(x)+ "秒"
print(mystr,end = "")
print("\b" * (len(mystr)*2),end = "",flush=True)
time.sleep(1)
説明する:
Range(5、-1、-1)は、次のことを意味します。rangeを使用して、5から始まり、-1の前で終わるリストを生成します。範囲の使用法は範囲(開始、終了、ステップサイズ)です。これは、大きいものから小さいものに移動するためです。したがって、-1を使用して、ステップが-1であることを示します。つまり、毎回-1を意味し、-2の場合は、タイムズ-2
str(x)はx変数を文字列に変換します
print(mystr、end = "")文字列を出力した後は、折り返しません。つまり、end = ""
最も重要なステートメント:print( "\ b" (len(mystr) 2)、end = ""、flush = True)
"\ B" (len(mystr)2)は、エスケープ文字 '\ b'を出力してから、len(mystr)を2回出力することを意味します。 lenは文字列の長さを取得します、なぜ2ですか?ご存知のとおり、使用している文字列は中国語で、1つの中国語文字= 2つの英語文字(プレースホルダー)なので、文字列が英語の場合、2つは使用できませんが、中国語の文字は異なります。特定の友達は削除を試みることができます 2
flush = Trueは、バッファーを開くことです
\ bエスケープ文字にはバックスペース機能があります。これは、ファイルを編集するときにBackSpaceキーを押して、カーソル位置から文字を前方に削除するのと同じです。
time.sleep(1)は、プログラムを1秒間一時停止します
このように、各印刷後に\ bを使用すると、行内のすべての文字をクリアできます。そのため、文字列の長さを取得する必要があります。また、PythonのIDLEは\ b文字を認識できないため、正しい結果はコンソールでのみ確認できます。
import time
print( "表示パーセンテージ")
for x in range(101):
mystr = "パーセント" + str(x)+ "%"
print(mystr,end = "")
print("\b" * (len(mystr)*2),end = "",flush=True)
time.sleep(0.5)
import time
input( "" Time Manager "へようこそ!続行するにはEnterキーを押してください。")
while True:
task_name = input( 'タスク名を入力してください:')
task_time = int(input( 'このタスクに少なくとも何分集中できると思いますか?N分を入力してください'))
input( 'このタスク情報:\ n完了したいタスク:%s \ n少なくとも集中する必要があります:%d分\ nタイミングを開始するにはEnterキーを押します:'%(task_name、task_time))
start = time.time()#開始タイミング
start_time = time.strftime( '%Y-%m-%d%H:%M:%S'、time.localtime(time.time()))#フォーマット日付
#実際のコード:60分を秒に掛け、-1を使用してカウントダウンします。
# for t in range(task_time*60,0,-1):
for t in range(task_time,0,-1):
info = 'タスクに集中し、集中し続けてください' + str(t)+ '秒! '
print(info,end="")
print("\b"*(len(info)*2),end="",flush=True)
time.sleep(1)
print( 'あなたは%d分に集中しました、素晴らしい〜もっと頑張ってタスクを完了してください!'%task_time)#カウントダウンの後、後続のコードを実行し続けます。
Recommended Posts