파이썬 print 함수의 end는 어떤 역할을 할까?
파이썬 print 함수의 end는 어떤 역할을 할까?
print()는 값을 출력한 뒤 기본적으로 줄을 바꿉니다. 이 마지막 동작을 바꾸는 매개변수가 end입니다. 여러 값을 한 줄에 이어 쓰거나 진행 상황을 표시할 때 유용합니다.
기본값은 줄바꿈 문자
print("첫째")
print("둘째")두 단어가 서로 다른 줄에 나오는 이유는 end="\n"이 기본값이기 때문입니다. 다음 두 코드는 같은 동작을 합니다.
print("첫째", end="\n")
print("둘째")end에 공백 넣기
for number in range(1, 6):
print(number, end=" ")
print()출력은 1 2 3 4 5가 됩니다. 마지막의 빈 print()는 다음 출력이 새 줄에서 시작하도록 줄바꿈을 추가합니다.
sep와 end의 차이
sep는 한 번의 print()에 전달된 여러 값 사이를, end는 출력 전체의 마지막을 정합니다.
print("2026", "07", "14", sep="-", end=" 완료\n")
# 2026-07-14 완료같은 줄의 진행률 표시
import time
for percent in range(0, 101, 20):
print(f"\r진행률: {percent:3d}%", end="", flush=True)
time.sleep(0.2)
print()\r은 커서를 현재 줄의 시작으로 옮기고 flush=True는 버퍼를 기다리지 않고 즉시 출력하게 합니다. 터미널과 노트북 환경에 따라 보이는 방식은 다를 수 있습니다.
문자열을 만들 때 print를 반복하지 않기
목록을 한 줄로 합치는 목적이라면 반복 출력보다 join()이 더 적절합니다.
names = ["민수", "지수", "영희"]
line = ", ".join(names)
print(line)end는 화면 출력 방식을 바꾸는 기능이지 문자열 결합 도구는 아닙니다.
출력 결과가 붙어 버리는 실수
print("처리 중", end="")
print("완료")
# 처리 중완료사이에 공백이 필요하면 end=" "를 사용합니다. 반대로 CSV나 로그 데이터를 만들 목적으로 end를 조정하면 출력 형식이 여러 곳에 흩어집니다. 데이터는 문자열로 먼저 구성하고 마지막에 한 번 출력하는 편이 테스트하기 쉽습니다.
연습: 카운트다운 한 줄 표시
5부터 1까지 숫자가 같은 줄에서 바뀌고 마지막에 “시작!”이 출력되는 프로그램을 작성해 보십시오. \r, end="", flush=True를 사용합니다. 숫자 자릿수가 줄어들 때 이전 문자가 남는 상황도 고려해 출력 폭을 일정하게 맞춰 보세요.
정리
end는 출력 뒤에 붙는 문자열을 정합니다. 한 줄 출력에는 공백, 줄 갱신에는 \r, 즉시 표시에는 flush=True를 함께 사용할 수 있습니다. 데이터 자체를 합칠 때는 join()을 선택하십시오.