この記事では、Python の数値演算とシステム出力関連の操作スキルを含む、プログラムの実行の進捗率を出力する Python の方法を主に紹介します。
この記事では、プログラムの実行の進捗率を出力する Python の方法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
一部の大規模な Python プログラムでは、プログラムが無限に陥るという誤解を避けるために、よりわかりやすく見せるためにコマンド ラインにパーセンテージを出力する必要があります。ループまたは一時停止アニメーション形式。
重要なのは、改行なしで出力文字 r を使用することです。r の出力はこの行の内容を直接上書きします。
例えば、以下のプログラムは i を 0 から 100,000 まで増やす処理ですが、現在の高性能 CPU でも実行の割合を出力したい場合は、sys パッケージを導入することができます。その後、sys.stdout.write 出力を使用して、元の出力に付属する n が全体的な状況に影響を与えないようにします。同時に、パーセンテージの小数点以下の桁は 4 に制御する必要があります。プログラム実行のパーセンテージは、i の現在の値を合計で割った値であり、その値は 100,000 です。
#-*-coding:utf-8-*- import sys; total=100000 for i in range(0,total): percent=float(i)*100/float(total) sys.stdout.write("%.4f"%percent); sys.stdout.write("%\r"); sys.stdout.flush(); sys.stdout.write("100%!finish!\r"); sys.stdout.flush();
プログラムの実行結果は次のとおりです:
ただし、ここで i がインクリメントされるたびに、現在の実行パーセンテージが必要になり、元の 100,000 回の浮動小数点演算が無駄に 200,000 回に増加します。同時に、画面を 100,000 回更新するのは非常に無理があるため、実行されるパーセンテージは毎回小数点以下 2 桁までしか保持されません。プログラムは次のように変更されます。
#-*-coding:utf-8-*- import sys; total=100000 for i in range(0,total): if i%100==0: percent=float(i)*100/float(total) sys.stdout.write("%.2f"%percent); sys.stdout.write("%\r"); sys.stdout.flush(); sys.stdout.write("100%!finish!\r"); sys.stdout.flush();
より、実行率を求めるための 100,000 回の浮動小数点演算が、100,000 回の条件付き演算に変更されます。同時に、画面を 1,000 回更新するだけで済みます。プログラムの実行時間は大幅に短縮されます。
同時に、Eclipse の Pydev のコンソールは r を改行文字として処理し、出力が次のようになることにも注意してください。ここでは方法がありません。
以上がPython は出力プログラムの実行進捗率を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。