4.2.21 IDLE 안에서 비효율적인 print 함수 사용을 줄인다

    IDLE 안에서 호출한 print 문 실행 속도는 너무 느리다. 이런 경우 print 호출 빈도수를 줄이면 놀라울 정도로 처리 속도를 개선할 수 있다.

    가령 별표 기호(*)로 40×20 블록을 출력하고 싶다고 해 보자. 가장 느린 방법은 각 문자를 개별적으로 출력하는 것이다. IDLE에서 다음 코드의 실행 속도는 고통스러울 정도로 느리다.

    for i in range(20):
        for j in range(40):
            print('*', end=' ')
        print()

    만약 한 번에 한 행의 별표 기호를 출력하면 훨씬 성능이 좋아진다.

    row_of_asterisks = '*' * 40
    for i in range(20):
        print(row_of_asterisks)

    하지만 최고 성능을 확보하는 방법은 여러 줄의 큰 문자열을 미리 만들고 나서 print 함수를 한 번만 호출하게 코드를 변경하는 것이다.

    row_of_asterisks = '*' * 40
    s = ''
    for i in range(20):
        s += row_of_asterisks + '\n'
    print(s)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.