>  기사  >  백엔드 개발  >  Python은 출력 프로그램 실행 진행률을 구현합니다.

Python은 출력 프로그램 실행 진행률을 구현합니다.

巴扎黑
巴扎黑원래의
2017-09-18 10:18:352104검색

이 글에서는 주로 Python의 프로그램 실행 진행률 출력 방법을 소개합니다. Python의 수치 연산과 시스템 출력 관련 조작 기술이 필요한 친구가 참고할 수 있습니다.

이 글에서는 Python의 프로그램 실행 진행률 출력 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

일부 대규모 Python 프로그램의 경우 프로그램이 무한에 빠진다는 오해를 피하기 위해 명령줄에서 백분율을 출력하여 보다 친근하게 표시해야 합니다. 루프 또는 정지된 애니메이션 형태.
핵심은 줄 바꿈 없이 출력 문자 r을 사용하는 것입니다. r의 출력은 이 줄의 내용을 직접 덮어씁니다.

예를 들어 다음 프로그램은 i를 0에서 100,000으로 증가시키는 과정입니다. 오늘날의 고성능 CPU의 경우에도 실행 비율을 출력하려면 sys 패키지를 도입하면 됩니다. 그런 다음 sys.stdout.write 출력을 사용하여 원본 인쇄물과 함께 제공되는 n이 전체 상황에 영향을 미치지 않도록 하세요. 동시에 백분율의 소수점 자리는 4로 조절되어야 한다. 프로그램 실행 비율은 정확히 i의 현재 값을 총계로 나눈 값으로, 값은 10만입니다.


#-*-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번 새로 고치는 것은 매우 무리이므로 프로그램을 다음과 같이 개선하면 됩니다. 동시에 실행 비율은 i 때마다 출력됩니다. 프로그램은 다음과 같이 수정됩니다.


#-*-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();

From 실행 백분율을 찾기 위한 100,000개의 부동 소수점 연산이 100,000개의 조건 연산으로 변경되었습니다. 동시에 화면을 1,000번만 새로 고치면 됩니다. 프로그램 실행 시간이 크게 단축됩니다.

동시에 Eclipse의 Pydev 콘솔은 여전히 ​​r을 개행 문자로 처리하므로 출력이 다음과 같이 표시된다는 점에 주목할 가치가 있습니다.

위 내용은 Python은 출력 프로그램 실행 진행률을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.