목차
파이썬을 처음 배울 때 많은 사람들이 print("Hello World!")를 실행해 볼 겁니다. 거의 모든 책이나 인터넷 강좌에서 보여주기 때문입니다. 파이썬에서 제공되는 print()의 다양한 사용법에 대해 정리를 해 보고자 합니다. 상황에 맞게 잘 사용할 수 있도록 끝까지 잘 읽어 보시기 바랍니다.
1. print()에 들어가는 데이터 타입들
print("Hello World!")에서 큰 따옴표 내의 데이터 "Hello World!"는 문자열을 의미합니다. 'print()' 함수의 인수로는 문자열뿐만 아니라 변수, 숫자, 연산식, 리스트 등 다양한 타입을 사용할 수 있습니다. 'print()' 함수는 인수를 자동으로 문자열로 변환하여 출력합니다. 따라서 인수의 타입에 따라 출력 결과가 달라집니다.
예를 들어, 숫자를 인수로 사용하면 숫자는 문자열로 변환되어 출력됩니다. 리스트를 인수로 사용하면 리스트의 요소들이 문자열로 변환되어 출력됩니다. 변수의 경우에도 해당 변수의 값이 문자열로 변환되어 출력됩니다.
# 변수출력
name = "Alice"
print(name)
# 숫자출력
print(42)
# 연산식 출력
print(2 + 3)
# 리스트 출력
print([1, 2, 3, 4, 5])
# 혼합 출력
name = "Bob"
age = 30
print("이름:", name, "나이:", age)
2. print() 함수 설명
print() 함수의 기본 형태는 다음과 같습니다. 시그니처에서 볼 수 있듯이, "print()" 함수는 가변 위치 인자(*objects)를 사용하므로 하나 이상의 객체를 인수로 전달할 수 있습니다. 추가적으로 선택적인 키워드 인자(sep, end, file, flush)를 사용하여 출력 형식을 지정할 수도 있습니다.
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
objects : 출력하고자 하는 객체들로 하나 이상의 인수를 전달할 수 있으며, 여러 개의 인수를 출력할 때는 공백으로 구분됩니다.
sep : 객체들 간의 구분자로 기본값은 공백(' ')입니다. 객체들 사이에 삽입할 문자열을 지정할 수 있습니다.
end : 출력의 끝에 추가할 문자열로 기본값은 개행 문자('\n')입니다.
file : 출력 대상 파일 객체로 기본적으로는 표준 출력(sys.stdout)을 사용합니다.
flush : 출력 버퍼를 비울지 여부를 결정합니다. 기본값은 False이며, True로 설정하면 버퍼를 비웁니다.
3. 각 인자를 사용한 print() 기본 사용
print() 함수를 이용한 가장 기본적인 사용방법은 다음과 같습니다. 기본적으로 end의 값의 '\n'이기 때문에 첫 번째 줄이 출력된 후 다음 print()는 다음 줄에 출력됩니다.
print("Hello, World!") # 단일 객체 출력
print("Hello", "World!") # 여러 개의 객체 출력
# Hello, World!
# Hello World!
추가적으로 sep, end, file, flush를 사용하여 출력 형식을 변경할 수 있습니다
print("Hello", "World!", sep=", ", end=" -> ", file=sys.stdout, flush=False)
# Hello, World! ->
위 예제에서는 객체들을 쉼표와 공백으로 구분하고, 출력의 끝에 ' -> '를 추가하도록 설정하였습니다. 출력은 표준 출력(sys.stdout)으로 이루어지며, 출력 버퍼는 비워지지 않습니다.
4. 그 외의 다양한 출력 방법
print()의 기본 시그니처를 이용하여 출력을 변화할 수 있지만 이 외의 방법으로도 다양한 출력 방법을 구현할 수도 있습니다.
# 문자열 반복 출력
print("안녕하세요! " * 3)
# 안녕하세요! 안녕하세요! 안녕하세요!
이 코드에서는 문자열 "안녕하세요! "를 세 번 반복하여 출력합니다. 곱셈 연산자(*)를 사용하여 문자열을 원하는 횟수만큼 반복할 수 있습니다. 따라서 위 코드를 실행하면 "안녕하세요! 안녕하세요! 안녕하세요!"가 출력됩니다.
# 줄바꿈 없이 출력
print("Hello, ", end="")
print("World!")
#Hello, World!
이 예제 코드에서는 첫 번째 "print()" 함수 호출에서 "Hello, "를 출력한 뒤, 줄 바꿈 없이 바로 두 번째 "print()" 함수 호출로 넘어갑니다. "end" 매개변수를 빈 문자열("")로 설정하면 출력 후 줄 바꿈 대신 아무것도 추가하지 않습니다. 따라서 위 코드를 실행하면 "Hello, World!"가 출력됩니다.
# 변수 출력과 포맷 지정
name = "Carol"
age = 27
print("이름: {}, 나이: {}".format(name, age))
# 이름: Carol, 나이: 27
이 코드는 "print()" 함수의 "format()" 메서드를 사용하여 변수의 값을 포맷에 맞게 출력합니다. 중괄호({}) 안에 변수 이름을 넣고, "format()" 메서드에 변수 값을 전달하여 문자열에 변수 값을 삽입합니다. 따라서 위 코드를 실행하면 "이름: Carol, 나이: 27"가 출력됩니다.
# f-string을 사용한 변수 출력
name = "Dave"
age = 35
print(f"이름: {name}, 나이: {age}")
# 이름: Dave, 나이: 35
f-string은 파이썬 3.6부터 도입된 문자열 포맷팅 방식입니다. 문자열 앞에 접두사 'f'를 붙이고 중괄호({}) 안에 변수나 표현식을 넣으면 해당 값으로 치환됩니다. 위 예제 코드에서는 f-string을 사용하여 변수 name과 age의 값을 출력하였습니다. 따라서 "이름: Dave, 나이: 35"가 출력됩니다.
# 리스트의 요소 출력
numbers = [1, 2, 3, 4, 5]
print("Numbers:", end=" ")
for number in numbers:
print(number, end=" ")
# Numbers: 1 2 3 4 5
이 코드에서는 리스트 numbers의 각 요소를 반복하면서 "print()" 함수를 사용하여 요소를 출력합니다. 리스트의 요소들은 공백으로 구분하여 출력되며, "end" 매개변수를 사용하여 출력 후 줄 바꿈 대신 공백을 추가하였습니다. 따라서 위 코드를 실행하면 "Numbers: 1 2 3 4 5"가 출력됩니다.
5. 마치며
지금까지 파이썬에서 가장 많이 사용되는 함수인 print()의 기본형태, 인자들에 대해 정리하였으며, 인자들을 활용한 출력 예제도 확인해 보았습니다. print() 내에 들어가는 가변 인자의 종류에 대해서도 알아봤으며, 다양한 방법의 출력 방법과 그 결과에 대해서도 예제 코드를 통해 설명드렸습니다. 코딩을 하다 보면 다양한 방법으로 print() 문을 구현해야 합니다. 위에 설명드린 방법들을 한 번씩 실행해 보시고 실제로는 잘 응용하여 사용하셨으면 합니다.