• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

print end 옵션 관련 질문입니다.

21.03.14 17:59 작성 조회수 280

1

강의 유용하게 잘 듣고 있습니다.

궁금한 점은,

end 옵션을 사용하는 이유가
계속해서 줄바꿈을 하면 문장을 읽기 어렵기에 그렇다고 한다면,

print('text text text', end=' ')
print('words words words')

이런식으로 적지 말고 차라리

print('text text text words words words') 처럼
한 print 문 안에 쭉 사용하면 될텐데,
저렇게 사용하는 이유는 따로 유용하게 쓰일 곳이 있어서겠죠?

혹시 다른 이유가 있으면 알려주시면 감사하겠습니다.

답변 2

·

답변을 작성해보세요.

2

김경민님의 프로필

김경민

2021.03.14

안녕하세요!

강의에서 나와있듯, 파이썬의 print함수는 기본적으로 엔터가 들어갑니다.

질문자님께서 말씀해주신 대로

두세번에 나눠서 출력할 문장을 한 번에 출력할 수 있다면 굳이 end 옵션을 줄 이유는 없습니다.

end 옵션으로 줄바꿈을 생략이 유용하게 쓰일 경우 중, 쉬운 예시를 들어본다면

단어들로 이루어진 list를 반복문을 통해 순회하는 경우가 있습니다.

예를들어, 

words = ["i", "love", "you", "so", "much"]

이때 각 단어들을 모두 대문자로 바꿔서, 한 줄의 문장으로 출력하고 싶다면

for w in words:

  print(w.upper( ) )

와 같이 쓴다면 단어 하나하나마다 줄바꿈이 되어서 보기 불편하겠죠?

print("I LOVE YOU SO MUCH")

와 같이 프로그래머가 문장을 직접 입력하여 사용하기 어려운 이유는

list 안에 어떤 단어들이, 몇개나 있는지 그때그때 달라질 수 있기 때문에

유연함이 낮아진다고 생각합니다.

또한 end 옵션에 띄어쓰기 뿐 아니라

' - '와 같은 문자를 설정해서 010-1234-5678과 같이 특정 양식에 맞는

문자열을 만들 수도 있기에 end 옵션을 사용한다고 생각합니다.

아! 어느정도는 이해가 됩니다!
답변 정말 감사드립니다!
좀 더 배우다보면 말씀하신 부분을 완전히 이해할 날이 올거라고 생각합니다.
감사합니다!!

김경민님의 프로필

김경민

2021.03.16

도움이 되셨다면 다행입니다!

1

haon님의 프로필

haon

2021.03.15

위분 답변과 같이 반복문에서 많이 사용하는데 예는 피라미드가 있습니다.

n = int(input()) #n를 정수로 입력받기
for i in range(1,n+1): #1~n번반복하기
	for k in range(i,n): #i~n번반복하기
		print(' ', end='') #공백출력하기
	for k in range(0,i*2-1): #0~i*2-1번반복하기
		print('*', end='') #별을 줄바꿈없이 출력하기
	print('') #출바꿈하기

적어주신 코드가 아직 이해는 안가지만, 반복문을 배우고 적어주신 코드를 리뷰하도록 하겠습니다!

답변해주셔서 정말 감사드립니다!