Responsive Advertisement
{getContent} $results={6} $label={recent} $type={grid}

파이썬 프로그래밍 - 출력문, print, sep, end

 본격적으로 프로그래밍을 시작하려고 합니다. 프로그래밍의 처음은 기본적인 입출력 명령어를 다루게 되는데요, 기본 출력문인 print에 대해 알아보겠습니다. 편의에 따라 vscode와 idle을 혼용하겠습니다.

썸네일

출력의 기본

print(출력할 내용)

다음과 같은 코드를 작성해 보겠습니다.

print("Hello, World!") #큰따옴표로 문자열 출력
print('Hello, World!') #작은따옴표로 문자열 출력
print("안녕, 세상아!") #한글 문자열도 출력
print('안녕, 세상아!')

print(3 + 5 * 2 - 28 // 7) #숫자나 숫자의 연산은 따옴표 없이 출력

name = 'python'
print(name) #변수의 출력도 따옴표 없이 출력

실행결과1

print문을 이용하여 출력문을 작성할 때 기본적인 출력문의 활용에 대해 알고 작성하는 것이 좋습니다. 다음과 같은 내용은 기초적인 내용이니 숙지하시길 바랍니다.

  • 문자열은 따옴표 안에 출력한다.
  • 작은따옴표로 시작한 문자열은 반드시 작은따옴표로 닫는다.
  • 큰따옴표로 시작한 문자열은 반드시 큰따옴표로 닫는다.
  • 한글로 작성된 문자열도 출력할 수 있다.
  • 숫자나 수의 연산, 변수의 내용을 출력할 때는 따옴표를 사용하지 않는다.
  • 코드를 작성하는 과정에서 줄바꿈은 프로그램 실행 결과에 영향을 미치지 않는다.


연달아 출력하기

print로 여러 내용을 연달아 출력하는 경우 일반적으로 두 가지 방법이 있습니다.

  1. 더하기(+) 연산자를 활용하기: 문자열과 문자열만 가능하다.
  2. 콤마(,)로 나열하기: 서로 다른 형태도 나열할 수 있다. 내용 사이에 공백이 포함된다.

두 가지 방법이 동일하게 동작하지는 않습니다. 실습을 통해 살펴보겠습니다.

더하기(+)연산자를 활용한 경우

실습결과2

더하기 연산자를 활용해 여러 가지 내용을 출력하는 경우 문자열과 문자열에 대해서만 가능합니다. print('안녕하'+3)이라고 작성된 명령어는 문자열과 숫자형 자료의 연산으로, 연산이 불가하기 때문에 오류가 발생하는 것을 확인할 수 있습니다.

그러면 print('안녕하'+'3')은 왜 오류없이 출력이 가능할까요? 3은 숫자이지만, 따옴표 안에 작성되면 그 자료의 형태가 문자열로 입력되거나 출력됩니다. 즉 '안녕하'도 문자열, '3'도 문자열 자료형이기 때문에 연산이 가능하게 되는 것입니다. 숫자가 문자열로 취급되는 경우에 대해 더 알아보겠습니다.

실행결과3

먼저 실행된 명령어는 5+3에 대한 출력이고, 나중에 실행된 명령어는 '5'+'3'에 대한 출력입니다. 5+3은 정수형 자료의 연산으로 수학적인 사칙연산이 수행되어 8이라는 결과를 출력합니다. 반면에, '5'와 '3'은 수학적 연산이 아닌 문자열의 연산이 되어 연달아 나란히 출력되어 '53'이라는 문자열이 됩니다. 

콤마로(,) 나열한 경우

실행결과4

반면에, 콤마로 나열하는 경우는 자료형이 달라도 수행할 수 있습니다. 문자열과 숫자형 자료를 함께 나열해도 에러가 발생하지 않습니다. 콤마를 사용할 때는 연산을 수행하는 것이 아닌, 말 그대로 자료를 나열하는 출력 행위가 되기 때문입니다. 단, 이렇게 나열하는 자료들은 스페이스 한 칸의 공백으로 구분하고 있기 때문에, 상황에 따라 적절한 방식을 선택해야 할 수도 있습니다.

print의 옵션 sep, end

print 명령어에는 sep, end, file, flush, 네 가지 옵션이 있습니다. 이중 sep과 end에 대해 살펴보겠습니다.

문자열 사이를 구분하는 구분자 sep

sep 명령어는 아래와 같은 방식으로 사용합니다. 

print(항목1, 항목2, ..., sep='구분자')

실행결과5

sep은 seperate(나누다, 구분하다)의 약어입니다. 이 키워드에 대해 파이썬은 'string inserted between values, default a space'라고 설명합니다. 대충 번역하면 '자료 사이에 들어가는 문자열, 기본값은 공백'이라는 뜻입니다. 여러 항목을 출력할 때 각 항목을 서로 구분할 수 있도록 구분자 문자열을 추가하는 옵션입니다. 구분자를 따로 지정하지 않는다면 공백으로 처리하게 됩니다. 전화번호 양식과 같이 자료와 자료 사이에 패턴이 있다면 일정한 형태의 구분자를 출력하기 위해 유용하게 활용할 수 있습니다. 

실행결과6

다음 출력문을 이어가기 위한 연결자 end

end 명령어는 아래와 같은 방식으로 사용합니다.

print(앞에 출력할 내용, end='연결자')

end는 다음 출력문과 내용을 연결하기 위한 연결자입니다. 이 키워드에 대해 파이썬은 'string appended after the last value, default a newline'이라고 설명합니다. 대충 번역하면 '마지막 출력 값 이후에 추가되는 문자열, 기본값은 줄바꿈'이라는 의미입니다. print문을 사용하면 자연스럽게 출력된 내용 이후로 줄바꿈이 되는데, 이 end 옵션의 기본값 때문입니다.

print('이름')
print('홍길동')
print('국적')
print('대한민국')


특별히 줄바꿈에 대해 신경쓰지 않아도 print문의 실행이 완료되는 시점에 줄바꿈이 되는 것을 알 수 있습니다. 이 내용을 end 옵션을 활용하여 '이름 : 홍길동'과 같은 형식으로 연결하여 출력해 보겠습니다.

print('이름', end=' : ')
print('홍길동')
print('국적', end=' : ')
print('대한민국')


end 옵션을 활용하여 이름과 국적에 콜론(:)을 붙여 내용 간의 관계성을 표현하였습니다. 2번 줄과 4번 줄은 end 옵션을 사용하지 않았기 때문에 줄바꿈이 됩니다.

마치며

print는 앞으로 배울 여러 명령어들 중 가장 기본이 되는 명령어입니다. 연산을 수행하거나 입력한 자료를 호출해 값을 돌려받거나 사용자에게 안내를 하거나 하기 위해서는 적절한 출력을 수행해야 합니다. 가장 기본적이기 때문에 가장 많이 활용되는 print 명령어를 꼭 기억해 두시고, 사용자와의 유연한 상호작용을 위해 print를 효과적으로 사용할 방법에 대해 고민해 보세요.

{getContent} $results={5} $label={recent} $type={block}