본문 바로가기
개발/Python

[파이썬, Python] print 정리

by 꾀돌이 개발자 2022. 4. 2.
반응형

 

[ 파이썬 print 정리 ]

 

 

help(print) : print 도움말 보기

help(print)

'''
[출력값]

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
'''

 

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

  • 여러 value(객체) 들을 인자로 받을 수 있습니다.
  • 생략 가능한 인자 sep, end, file, flush 를 포함합니다.

 


sep : string inserted between values, default a space.

  • 객체 사이에 삽입할 문자열을 정의합니다.
  • sep 의 기본값은 공백(' ', space) 입니다.
  • sep 을 별도로 정의하지 않을 경우 객체 사이에 공백을 삽입합니다.
print('abc', 123) # 출력값 : abc 123
print('abc', 123, 567, sep='/') # 출력값 : abc/123/567
print('abc', 123, sep='\t') # 출력값 : abc	123

 


end : string appended after the last value, default a newline.

  • 마지막 객체 뒤에 추가할 문자열을 정의합니다.
  • end 의 기본값은 개행('\n', newline) 입니다.
  • end 를 별도로 정의하지 않을 경우 print 실행이 끝난 뒤 다음 줄에 새로운 값을 출력합니다.
print('abc')
print('def')

# 출력값 : abc (다음 줄) def

print('abc', end='~~~')
print('def')

# 출력값 : abc~~~def

 


file : a file-like object (stream); defaults to the current sys.stdout.

  • 지정된 파일에 print value 들을 저장합니다.
  • file 의 기본값은 sys.stdout 입니다.
  • file 를 별도로 정의하지 않을 경우 사용 중인 IDLE 등의 화면에 내용을 출력합니다.
path = r'C:\Users\***\Desktop\print_file_test.txt'

with open(path, 'w') as f:
    print('print', 'file', 'test', file=f)
    
# 출력값 : 화면에 출력되는 값은 없음
# path 경로에 print file test 라는 값이 저장됨

 


flush : whether to forcibly flush the stream.

  • stream을 강제로 flush 할 것인지 결정합니다.
  • Fasle = print 함수의 출력값 buffered, True = buffered 데이터를 강제 flush
  • flush 의 기본값은 Fasle 입니다.
  • end = '\n' 일 경우 자동으로 flush 되는 모습을 보입니다.
  • IDE(파이참 등)의 Terminal에서는 별도의 보정으로 인해 flush=True를 하지 않더라도 print 값이 출력되는 것으로 보입니다.
  • 아래 사진은 파이참 Python Console 에서 테스트한 결과입니다.

Python Console 환경에서 flush=True 테스트 결과

for i in range(10):
    print(i, end=' ')
print('출력', flush=True)

# 출력값 : 0 1 2 3 4 5 6 7 8 9 출력
# for문 동안 print 값이 출력되지 않으며,
# print('출력', flush=True)로 인해 buffered 데이터가 강제로 flush 됨

 

 

반응형