Python_TIL_07

Hanbin Lee·2021년 11월 19일
0

Python_TIL

목록 보기
7/10
post-thumbnail

파이썬의 sys모듈을 사용한 stdout/stderr와 간단한 표준입출력과 다양한 출력 포맷에 대해 공부한 부분을 정리해보려 한다.

표준입출력

프로그램과 그 환경 사이에 연결되어있는 입출력 통로(pipe)가 존재하는데, 일반적으로 프로그램이 실행 될 때, 3개의 통로가 열린다. 입력을 위한 입력 스트림, 출력을 담당하는 출력 스트림, 에러를 담당하는 에러 스트림 이렇게 3개의 스트림을 표준 스트림 즉, 표준입출력이라 한다.
표준 C 실행 라이브러리의 <stdio.h> 헤더에서 각각 stdin, stdout, stderr로 정의된다.
파이썬에서는 표준입출력을 사용하기 위해 sys 모듈을 사용한다.

sys 모듈

sys 모듈을 임포트한다.

import sys
print("Python", "Java", file=sys.stdout)
print("Python", "Java", file=sys.stderr)

입력

입력을 받기 위해서는 input 메서드를 사용한다.
입력으로 들어온 값은 문자열 타입을 갖는다.

answer = input("아무 값이나 입력하세요 : ") # 10 입력
print("입력하신 값은 " + answer + "입니다")
print(type(answer)) # <class "str">
answer = 10
print(type(answer)) # <class "int">

출력

메서드를 사용하여 출력을 핸들링 할 수 있다.
ljust() : 왼쪽 정렬 후 인자만큼 칸을 할당
rjust() : 오른쪽 정렬 후 인자만큼 칸을 할당
sep() : 변수 간격 핸들링 가능 (기본 값: " ")
end() : 출력문 마지막 핸들링 가능 (기본 값: \n)
zfill() : 숫자출력 빈칸을0으로 할당

scores = {"수학":0, "영어":50, "코딩":100}
for subject, score in scores.items():
  print(subject.ljust(8), str(score).rjust(4), sep=":")
# 수학      :   0
# 영어      :  50
# 코딩      : 100

print("대기번호 : " + str(6).zfill(3)) # 006

다양한 출력 포맷

숫자형 출력에 대해서 다양한 포맷이 가능하다.

기본 형태

print("{0:abcd,}".format())

a : 빈칸을 어떤 값으로 출력할지 정한다.
b : 왼쪽 정렬 또는 오른쪽 정렬을 한다.
c : 숫자를 음수, 양수로 출력한다.
d : 출력문의 크기를 할당한다.
, : 숫자 3자리 간격마다 콤마를 출력한다.

# 빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보
print("{0: >10}".format(500)) #        500
# 양수일 땐 +로 표시, 음수일 땐 -로 표시
print("{0: >+10}".format(500)) #       +500
print("{0: >+10}".format(-500)) #       -500
# 왼쪽 정렬하고, 빈칸으로 _로 채움
print("{0:_<10}".format(500)) # 500_______
# 3자리 마다 콤마를 찍어주기
print("{0:,}".format(100000000000)) # 100,000,000,000
# 3자리 마다 콤마를 찍어주기, +- 부호도 붙이기
print("{0:+,}".format(100000000000)) # +100,000,000,000
print("{0:+,}".format(-100000000000)) # -100,000,000,000
# 3자리 마다 콤마를 찍어주기, 부호도 붙이고, 자릿수 확보하기
# 돈이 많으면 행복하니까 빈 자리는 ^ 로 채워주기
print("{0:^<+30,}".format(100000000000)) # +100,000,000,000^^^^^^^^^^^^^^

실수의 소수점 갯수도 핸들링이 가능하다.

# 소수점 출력
print("{0:f}".format(5/3))
# 소수점 특정 자리수 까지만 표시
print("{0:.2f}".format(5/3))

REFERENCE

나도코딩 유튜브
Python - 공식문서
점프투파이썬 - WikiDocs
모다일 SW 개발자 kibua20 - 블로그

profile
안녕하세요 백엔드 개발자 이한빈 입니다 :)

0개의 댓글