혼공학습단/혼공파

[혼공파] print 함수 톺아보기

sunghoyaaa 2025. 1. 8. 08:23

혼자 공부하는 파이썬 (개정판)

이 게시글은 혼공학습단(혼공파) 13기의 1주차 과제를 포함하고있습니다.

 

1. print() 함수의 기본 사용법

print() 함수는 값을 출력하기 위해 사용됩니다.

print("안녕하세요, Python!") # 출력: 안녕하세요, Python!
쉼표로 여러 값을 구분하여 출력할 수도 있습니다.
print("이름:", "성호", "나이:", 25) # 출력: 이름: 성호 나이: 25

2. print() 함수의 파라미터

help(print)
Help on built-in function print in module builtins:

print(*args, sep=' ', end='\n', file=None, flush=False)
    Prints the values to a stream, or to sys.stdout by default.

    sep
      string inserted between values, default a space.
    end
      string appended after the last value, default a newline.
    file
      a file-like object (stream); defaults to the current sys.stdout.
    flush
      whether to forcibly flush the stream.

 

 

  • print() 함수는 하나 이상의 값을 출력할 수 있는 Python의 내장 함수입니다.
  • *args: 여러 개의 값을 가변 위치 인수 형태로 받을 수 있습니다. 예를 들어, print(1, 2, 3)처럼 쉼표로 구분된 값들을 전달할 수 있습니다.

 

1) sep (구분자)

  • 설명: 출력할 여러 값 사이에 삽입할 문자열을 지정합니다.
  • 기본값: 공백 (' ')
print("Python", "is", "awesome", sep="-") # 출력: Python-is-awesome

2) end (끝 문자열)

 

  • 설명: 출력이 끝난 후 추가로 삽입할 문자열을 지정합니다.
  • 기본값: 줄바꿈 ('\n')

 

print("Hello", end=" ") print("World") # 출력: Hello World

3) file

 

  • 설명: 출력 대상을 지정합니다. 기본적으로 표준 출력(sys.stdout, 일반적으로 콘솔)에 출력되지만, 파일 객체를 전달하여 출력 내용을 파일에 저장할 수도 있습니다.
  • 기본값: sys.stdout

 

with open("output.txt", "w") as f:
    print("파일에 출력됩니다.", file=f)
# 파일에 "파일에 출력됩니다."라는 텍스트가 저장됩니다.

4) flush

 

  • 설명: 출력 내용을 즉시 스트림에 강제로 내보낼지 여부를 결정합니다.
  • 기본값: False (스트림이 자동으로 관리)

 

import time

for i in range(5):
    print(i, end=" ", flush=True)
    time.sleep(1)
# 출력: 0 1 2 3 4 (1초 간격으로 출력)

3. 여러 줄 출력

print() 함수는 이스케이프 문자를 사용해 여러 줄을 출력할 수 있습니다.

print("안녕하세요,\nPython입니다.")
# 출력:
# 안녕하세요,
# Python입니다.

또는 삼중 따옴표(""")를 활용하여 더 깔끔하게 작성할 수도 있습니다.

print("""
안녕하세요,
Python입니다.
""")
# 출력:
# 
# 안녕하세요,
# Python입니다.
#

삼중따옴표(""")에 '\' 기호를 추가("""\)하면 의도하지 않은 공백을 방지할 수 있습니다

print("""\
안녕하세요,
Python입니다.
""")
# 출력:
# 안녕하세요,
# Python입니다.

 


4. f-string과 함께 사용하기

Python 3.6부터 도입된 f-string을 사용하면 문자열 포매팅이 훨씬 직관적입니다.

 
name = "성호"
age = 25
print(f"이름: {name}, 나이: {age}")
# 출력: 이름: 성호, 나이: 25

f-string은 수식도 지원합니다.

a, b = 5, 3
print(f"{a} + {b} = {a + b}")
# 출력: 5 + 3 = 8

5. print()를 활용한 디버깅

print()는 디버깅에도 자주 사용됩니다. 특히, 변수 값을 확인하거나 실행 흐름을 추적할 때 유용합니다.

def calculate(x, y):
    print(f"x: {x}, y: {y}")  # 디버깅용 출력
    return x + y

result = calculate(5, 10)
print(f"결과: {result}")
# 출력:
# x: 5, y: 10
# 결과: 15

마무리

print() 함수는 단순히 값을 출력하는 데 그치지 않고, 다양한 매개변수를 통해 커스터마이징된 출력이 가능합니다. 또한 디버깅, 파일 출력, 실시간 로깅 등 다양한 상황에서 유용하게 사용됩니다.


여기서부터는 혼공파의 1주차 과제 입니다.

 

1. 프로그램의 실행 결과를 예측해보세요.

print("# 연습문제")
print("\\\\\\\\")
print("-" * 8)
더보기
# 연습문제
\\\\
--------

 

  • print("# 연습문제")는 문자열 # 연습문제를 출력합니다.
  • print("\\\\\\\\"):
    • 백슬래시(\)는 파이썬에서 이스케이프 문자로 사용됩니다.
    • \\는 하나의 백슬래시(\)로 해석됩니다.
    • 따라서 \\\\는 두 개의 백슬래시(\\)로 출력됩니다.
  • print("-" * 8):
    • 문자열 "-"를 8번 반복한 결과를 출력합니다.
    • 결과적으로 --------가 출력됩니다.

 

2. 다음 프로그램을 실행결과를 예측해보세요. 오류가 발생하면 왜 발생하는지 작성해보세요.

print("안녕하세요"[1])
print("안녕하세요"[2])
print("안녕하세요"[3])
print("안녕하세요"[4])
print("안녕하세요"[5])
더보기
녕
하
세
요
IndexError: string index out of range
  •  "안녕하세요"[1]:
    • 문자열 "안녕하세요"에서 인덱스는 0부터 시작합니다.
    • 인덱스 1은 "녕"에 해당합니다.
  • "안녕하세요"[2]와 "안녕하세요"[3]  "안녕하세요"[4]는 각각 "하", "세", "요"에 해당합니다.
  • "안녕하세요"[5]:
    • 문자열 "안녕하세요"의 길이는 5이지만, 유효한 인덱스는 0 ~ 4입니다.
    • 인덱스 5는 문자열 범위를 벗어나므로 IndexError가 발생합니다.

 

3. 다음 프로그램의 실행결과를 예측해보세요

print("안녕하세요"[1:3])
print("안녕하세요"[2:4])
print("안녕하세요"[1:])
print("안녕하세요"[:3])
더보기
녕하
하세요
녕하세요
안녕하

 

  •  "안녕하세요"[1:3]:
    • 슬라이싱은 [시작:끝] 형식으로 동작하며,  인덱스는 포함되지 않습니다.
    • 인덱스 1부터 3 이전(즉, 1과 2)까지의 문자 "녕하"가 출력됩니다.
  • "안녕하세요"[2:4]:
    • 인덱스 2부터 4 이전(즉, 2와 3)까지의 문자 "하세요"가 출력됩니다.
  • "안녕하세요"[1:]:
    • 시작 인덱스가 1이고 끝 인덱스가 생략된 경우, 1부터 문자열 끝까지 슬라이싱합니다.
    • 결과적으로 "녕하세요"가 출력됩니다.
  • "안녕하세요"[:3]:
    • 시작 인덱스가 생략된 경우, 문자열 처음부터 3 이전(즉, 0, 1, 2)까지 슬라이싱합니다.
    • 결과적으로 "안녕하"가 출력됩니다.

 

728x90