Heim > Backend-Entwicklung > Python-Tutorial > Python implementiert den Prozentsatz des Ausführungsfortschritts des Ausgabeprogramms

Python implementiert den Prozentsatz des Ausführungsfortschritts des Ausgabeprogramms

巴扎黑
Freigeben: 2017-09-18 10:18:35
Original
2140 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode von Python vor, um den Prozentsatz des Ausgabeprogrammausführungsfortschritts zu implementieren, einschließlich numerischer Python-Operationen und systemausgabebezogener Bedienfähigkeiten. Freunde in Not können sich darauf beziehen

Das Beispiel dieses Artikels erzählt Die Python-Implementierung des Ausgabeprogramms Methode zum Ausführen des Fortschrittsprozentsatzes. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Bei einigen großen Python-Programmen müssen wir den Prozentsatz in der Befehlszeile ausgeben, um ein benutzerfreundlicheres Erscheinungsbild zu gewährleisten und Missverständnisse über das Programm zu vermeiden steckt in einer Endlosschleife oder einer angehaltenen Animation fest.
Der Schlüssel besteht darin, das Ausgabezeichen r ohne Zeilenumbrüche zu verwenden. Die Ausgabe von r überschreibt direkt den Inhalt dieser Zeile.

Das folgende Programm ist beispielsweise ein Prozess, bei dem i von 0 auf 100.000 erhöht wird. Selbst für die heutige Hochleistungs-CPU dauert es mehrere Sekunden, wenn wir den Prozentsatz der Ausführung ausgeben möchten Nach der Einführung des sys-Pakets wird die Ausgabe von sys.stdout.write verwendet, um zu verhindern, dass das mit dem Originaldruck gelieferte n die Gesamtsituation beeinträchtigt. Gleichzeitig sollte die Dezimalstelle des Prozentsatzes auf 4 eingestellt werden. Der Prozentsatz der Programmausführung ist genau der aktuelle Wert von i dividiert durch den Gesamtwert, der einen Wert von einhunderttausend hat.


#-*-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();
Nach dem Login kopieren

Das laufende Ergebnis des Programms ist wie folgt:

Jedes Mal wird i jedoch erhöht Hier ist der aktuelle Wert erforderlich. Der laufende Prozentsatz erhöht die ursprünglichen 100.000 Gleitkommaoperationen auf 200.000 Mal und aktualisiert den Bildschirm gleichzeitig 100.000 Mal. Daher können die folgenden Verbesserungen am Programm vorgenommen werden. Der laufende Prozentsatz behält nur 2 Dezimalstellen bei. Gleichzeitig wird die Prozentausgabe jedes Mal durchgeführt, wenn ich 100 akkumuliere. Das Programm wird wie folgt geändert:


#-*-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();
Nach dem Login kopieren

Die Bedingung für die Berechnung des Ausführungsprozentsatzes wird von 100.000 Gleitkommaoperationen auf 100.000 Berechnungen geändert, während die Laufzeit des Programms nur 1000 Mal aktualisiert wird.

Gleichzeitig ist hier zu beachten, dass die Konsole in Pydev in Eclipse immer noch r als Newline-Zeichen verarbeitet, sodass die Ausgabe wie folgt aussieht: Hier gibt es keine Möglichkeit!

Das obige ist der detaillierte Inhalt vonPython implementiert den Prozentsatz des Ausführungsfortschritts des Ausgabeprogramms. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage