본문 바로가기
IT & 코딩

파이썬 팁 : 개행문자 없이 print() 하기

by 에일라거 2021. 4. 22.

이건 제가 쓰다가 불편해서 남기는 팁입니다.

 

 

파이썬에서 for 문 같은 루프를 돌 때 print() 함수 이용해서 현황 체크같은 거 많이 하시죠? 루프가 한 이십오만칠천번 정도 실행된다 치면 얼마나 했는지 몰라서 답답하니까....

 

저는 주피터 환경에서 하다 보니  무한히 개행문자가 삽입되면 그것도 짜증나서 찾아봤습니다.

 

기본 실행 방식

 

뭐 이렇게들 쓰죠.... 근데 이게 한 3만번 반복되면 안되니까

 

end 옵션 사용하기

f string 은 파이썬 3.6인가부터 도입되었습니다. 그림과 같이 외부 인자를 string 화 해서 표현할 수 있어요. 쨌든 print() 함수 안에 저렇게 end 옵션을 주면 한 번 표출한 후 끝 문자를 뭐로 할 건지를 지정할 수 있습니다. 위처럼 아무것도 안하게 되면 모든 출력이 딱 붙어서 나옵니다. 기본은 개행문자 '\n' 입니다.

 

개행문자 없애기

루프가 길게 도는데 저짓을 하는 것도 에러니까, 아예 앞선 출력을 지우고 마지막 출력만 남겨놓도록 해보겠습니다.

 

???

 

뭐여, 싶으니까 아래 움짤로 볼께요

 

 

보시면 출력되었던 문자가 지워지고 새로 출력하는 문자로 덮이는 것을 알 수 있습니다.

 

이렇게 하기 위해 기본 인자인 \n 대신에, carriage return 문자인 \r 문자를 넣어주면 개행은 없으면서 문자는 지워버리고 덮어쓰게 됩니다.

 

추가적인 문제

위의 방법은 아래와 같은 문제가 있습니다.

위 코드를 보면 아시겠지만 10에서 시작해서 점점 감소하게끔 출력하도록 합니다. 근데 10은 두자리고 나머지 숫자는 1자리라서 그 자리에서 캐리지 리턴을 하게 되면 맨 끝에 0은 (10의 0) 그대로 남게 됩니다.

 

해결하기

원인을 알았으니... 뭐

 

그냥 끝자리를 조금 띄워주는 걸로 해결을 할게요. 이거저거 대입해 봤는데.... 그거 찾아볼 시간에 그냥 공백 문자 몇개 넣는 게 낫겠더라구요. ㅋㅋ

 

 

 

 


 

 

오늘은 간단한 파이썬 팁이었습니다. 괜히 어설프고 길고 재미없는 정보보다 이런 팁이 더 나을 거 같아서 짧게나마 포스팅해 봤습니다.

 

다음에 더 알찬 글로 돌아올게요!

댓글