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)