본문으로 건너뛰기

print로 출력하기

파이썬 목차첫 프로그램레슨 2 / 59

목차

print는 괄호 안에 넘긴 값을 화면에 글자로 찍는 함수(function)입니다. 값을 쉼표로 나눠 여럿 넘기면 값 사이에 빈칸을 하나씩 넣고, 다 찍은 뒤에는 줄을 바꿉니다.

프로그램이 무엇을 했는지 사람이 알려면 결과를 화면에 내보내야 합니다. 출력은 글자 하나하나가 결과라서, 빈칸 하나와 줄바꿈 하나까지 그대로 예측할 수 있어야 코드를 읽었다고 할 수 있습니다. 이 레슨에서는 print가 값 사이와 끝에 무엇을 붙이는지 봅니다. 함수는 파이썬이 이름을 붙여 둔 기능이고, 이름 뒤에 괄호를 붙여 부릅니다. 함수를 직접 만드는 법은 8단원에서 배웁니다.

6단계 중 1단계. 다음을 누르면 1번 줄부터 실행합니다.

1괄호 안의 값을 한 줄로 찍는다

print('커피')
print("라테")
print(4000)
print()
print('끝')
실행 결과
커피
라테
4000

끝

print는 괄호 안의 값을 찍고 줄을 바꿉니다. 줄마다 출력이 한 줄씩 생깁니다. 따옴표로 감싼 글자를 문자열(string)이라고 합니다. 작은따옴표(')와 큰따옴표(")는 어느 쪽을 써도 같고, 이 과목은 작은따옴표를 씁니다. 따옴표는 문자열이 어디서 시작해 어디서 끝나는지 알리는 표시라서 찍히지 않습니다. 4000처럼 수는 따옴표 없이 씁니다. 글자와 수가 어떻게 다른지는 수와 글자에서 봅니다. 괄호를 비운 print()는 빈 줄 하나를 찍습니다. 실행 결과의 넷째 줄이 빈 줄입니다.

2값 사이에는 빈칸 하나 — sep

괄호 안에 값을 쉼표로 나눠 여럿 넘길 수 있습니다. 1·2번 줄은 그림의 1·2번 줄과 같습니다.

print('커피', '라테')
print('커피', '라테', sep='')
print('커피', 4000)
print('커피', '라테', sep=' / ')
실행 결과
커피 라테
커피라테
커피 4000
커피 / 라테

쉼표는 값과 값의 경계를 알리는 표시라서 찍히지 않습니다. print는 값 사이에 빈칸 하나를 넣어 한 줄에 찍습니다. sep= 뒤에 따옴표로 글자를 적으면, 빈칸 대신 그 글자를 값 사이에 넣습니다. sep는 구분자(separator)를 줄인 이름입니다. sep=''처럼 따옴표 안을 비우면 사이에 아무것도 넣지 않아 값이 붙습니다.

3끝에는 줄바꿈 — end

print는 값을 다 찍은 뒤 끝에 줄바꿈을 붙입니다. 그래서 다음 print는 새 줄에서 시작합니다. 1·2번 줄은 그림의 3·4번 줄과 같습니다.

print('합계', end=': ')
print(14500)
print('주문', end='')
print('완료')
실행 결과
합계: 14500
주문완료

end= 뒤에 글자를 적으면 줄바꿈 대신 그 글자를 끝에 붙입니다. 1번 줄은 '합계' 뒤에 ': '를 붙이고 줄을 바꾸지 않습니다. 그래서 2번 줄의 14500이 같은 줄에 이어 찍힙니다. 3번 줄의 end=''는 끝에 아무것도 붙이지 않아, 4번 줄의 '완료'가 '주문' 바로 뒤에 붙습니다.

sep와 end를 쓰지 않으면 각각 빈칸 하나와 줄바꿈이 붙습니다.

쓰는 꼴넣는 곳쓰지 않으면
sep='/'값과 값 사이빈칸 하나
end=': '다 찍은 뒤 끝줄바꿈

예제

빈칸과 줄바꿈까지 그대로 적어 본 뒤 결과를 펼쳐 보세요.

print('주문', end='')
print('완료', '감사합니다')
print('합계', 14500, sep=': ')

무엇이 찍힐까요?

실행 결과 보기
실행 결과
주문완료 감사합니다
합계: 14500

예상과 다르면 그곳이 배울 곳입니다. 1번 줄은 end=''라 줄을 바꾸지 않아 2번 줄의 '완료'가 바로 이어집니다. 2번 줄은 두 값 사이에 빈칸을 넣고 끝에서 줄을 바꿉니다. 3번 줄은 값 사이에 빈칸 대신 ': '를 넣습니다.

카페 영수증을 찍는 코드입니다. 줄마다 sep=': '로 메뉴와 값 사이에 콜론(:)과 빈칸을 넣었습니다.

print('플로우 카페')
print('커피', 4000, sep=': ')
print('라테', 4500, sep=': ')
print('합계', 8500, sep=': ')
실행 결과
플로우 카페
커피: 4000
라테: 4500
합계: 8500

합계 8500은 손으로 계산해 적은 수입니다. 값에 이름을 붙여 파이썬이 합계를 계산하게 하는 법은 변수: 값에 이름 붙이기에서 봅니다.

자주 틀리는 곳

틀린 생각: 쉼표로 나눠 넘긴 값은 붙어서 찍힌다.

따옴표 안에 빈칸을 적지 않았으니 빈칸도 찍히지 않으리라 여기게 됩니다. 쉼표 자리에는 빈칸 하나가 들어갑니다.

print('a', 'b')
print('a', 'b', sep='')
실행 결과
a b
ab

1번 줄은 a와 b 사이에 빈칸을 넣었고, sep=''를 쓴 2번 줄만 붙여 찍었습니다.

맞는 규칙: print는 값과 값 사이에 sep 글자를 넣고, sep를 쓰지 않으면 빈칸 하나를 넣습니다. 붙여 찍으려면 sep=''를 씁니다.

틀린 생각: 문자열을 감싼 따옴표도 함께 찍힌다.

코드에서는 따옴표가 글자에 붙어 있어 함께 찍힐 것처럼 보입니다. 바깥 따옴표는 찍히지 않습니다.

print('커피')
print('"커피"')
실행 결과
커피
"커피"

2번 줄은 작은따옴표가 문자열을 감쌌고, 그 안의 큰따옴표는 글자라서 찍혔습니다.

맞는 규칙: 바깥 따옴표는 문자열이 어디서 시작해 어디서 끝나는지 알리는 표시라 찍히지 않습니다. 따옴표를 찍으려면 2번 줄처럼 다른 따옴표 안에 적습니다.

틀린 생각: Print처럼 대문자로 써도 파이썬은 print로 알아듣는다.

영어 글에서는 대문자로 시작해도 같은 낱말이라 그렇게 여기게 됩니다. 파이썬은 대문자와 소문자를 다른 글자로 봅니다.

print(4000)
Print(4500)
실행 결과
4000Traceback (most recent call last):  File "main.py", line 2, in <module>    Print(4500)    ^^^^^NameError: name 'Print' is not defined. Did you mean: 'print'?

1번 줄은 실행되어 4000이 찍혔고, 2번 줄에서 오류가 나 멈췄습니다. 맨 아래 줄의 NameError는 '그런 이름이 없다'는 오류입니다. 파이썬에는 Print라는 이름이 없고, print로 짐작해 실행해 주지도 않습니다. Did you mean: 'print'?⁠는 '혹시 print인가요?'라는 파이썬의 짐작입니다. 오류 메시지를 읽는 차례는 다음 레슨 오류 메시지 읽기에서 배웁니다.

맞는 규칙: 파이썬은 대문자와 소문자를 다른 글자로 보므로 Print는 print와 다른 이름입니다. 이름은 대문자·소문자까지 똑같이 씁니다(규칙 6).

확인 문제

1. 예제 첫째 코드의 1번 줄에서 end=''를 지웠습니다. 무엇이 찍히는지 줄마다 그대로 쓰세요.

print('주문')
print('완료', '감사합니다')
print('합계', 14500, sep=': ')
힌트

1번 줄은 이제 print('주문')뿐입니다. end를 쓰지 않은 print가 끝에 무엇을 붙이는지 떠올립니다.

정답
실행 결과
주문
완료 감사합니다
합계: 14500

1번 줄이 끝에 줄바꿈을 붙여, '완료'는 새 줄에서 시작합니다. 흔한 오답은 첫 줄을 주문완료 감사합니다로 쓴 답입니다. end=''를 지운 뒤에도 줄이 이어진다고 본 것입니다.

2. 실행 결과가 아래처럼 나오도록 … 자리에 들어갈 것을 쓰세요.

커피/라테
print('커피', '라테', …)
힌트

실행 결과에서 두 값 사이에 무엇이 들어갔는지 보고, 그 자리의 글자를 정하는 법을 2절에서 찾아봅니다.

정답

sep='/'입니다. 큰따옴표로 sep="/"라고 써도 같습니다.

print('커피', '라테', sep='/')
실행 결과
커피/라테

sep=' / '처럼 빗금 양쪽에 빈칸을 넣으면 커피 / 라테가 찍혀 결과와 다릅니다. 빈칸도 글자입니다.

3. 사흘 동안 걸은 걸음 수를 찍는 코드입니다. 무엇이 찍히는지 줄마다 그대로 쓰세요.

print('월', '화', '수', sep='-')
print('걸음', end=' ')
print(8000, 9500, 7000)
힌트

줄마다 sep와 end가 있는지, 있으면 무엇인지 봅니다.

정답
실행 결과
월-화-수
걸음 8000 9500 7000

2번 줄은 끝에 줄바꿈 대신 빈칸을 붙여, 3번 줄의 수가 같은 줄에 이어 찍힙니다. 3번 줄은 세 수 사이에 빈칸을 넣습니다. 흔한 오답은 '걸음'을 한 줄에 따로 쓴 답입니다. end=' '를 쓴 줄도 끝에 줄바꿈이 붙는다고 본 것입니다.

아래 2절 코드의 3번 줄을 print('커피', 4000, '원')⁠으로 바꾸면 찍히는 줄을 모두 봅니다.

처음 펼 때 약 6MB를 받습니다.컴퓨터에서 해 보기

더 보기: 문자열 잇기와 되풀이

끝까지 내려오면 저절로 표시됩니다. 이 기기에만 저장합니다.

파이썬 목차로