TIL - python(표준 입출력, 다양한 출력 포맷)

한성봉·2021년 4월 15일

유튜브 '나도코딩'채널의 파이썬 강좌를 토대로 정리한 내용입니다.

표준 입출력

1. sep(구분자)

자료 사이의 출력할 구분자를 넣을 수 있다. 예시를 살펴보자.

입력

print("python", "java", "C++", sep=" , ")
print("python", "java", "C++", sep=" + ")
print("python", "java", "C++", sep=" - ")
print("python", "java", "C++", sep=" > ")
print("python", "java", "C++", sep=" # ")

출력

python , java , C++
python + java + C++
python - java - C++
python > java > C++
python # java # C++

2. end

자료 마지막에 이어서 출력값을 생성할 수 있다. 줄바꿈을 사용하지 않는다.

입력

print("python", "java", sep=",", end="? ")
print("무엇이 더 재밌을까요?")

출력

python,java? 무엇이 더 재밌을까요?

3. import sys

입력

print("python", "java", file=sys.stdout)  # 표준 출력 처리
print("python", "java", file=sys.stderr)  # 표준 에러 처리

출력

python java
python java

file=sys.stdout 표준 출력 처리와 file=sys.stderr 표준 에러 처리에 대해서 배웠다. 에러 처리를 함에 있어서 따로 표시를 할 수 있다고 배웠지만 사실 잘 이해가 가지 않는다. 추후에 다시 학습하여야겠다.

4. 왼쪽 정렬, 오른쪽 정렬

입력

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

출력

수학       :    0
영어       :   50
코딩       :  100

5. zfill : 같은 자리 수 만들기(001,002,003...)

입력

for num in range(1, 6):
	print("대기번호 : " + str(num).zfill(3))

출력

대기번호 : 001
대기번호 : 002
대기번호 : 003
대기번호 : 004
대기번호 : 005

6. input

input을 통해 값을 입력할 때 숫자도 str(문자열)형태로 출력된다.

입력

answer = input("아무 값이나 입력하세요 ")
print("입력하신 값은 " + answer + "입니다.")

출력

아무 값이나 입력하세요 코딩
입력하신 값은 코딩입니다.
아무 값이나 입력하세요 10
입력하신 값은 10입니다.

입력

answer = input("아무 값이나 입력하세요 ")
print("입력하신 값은 " + answer + "입니다.")
print(type(answer))

출력

아무 값이나 입력하세요 10
입력하신 값은 10입니다.
<class 'str'>

다양한 출력 포맷

다양한 예시를 통해서 출력 포맷을 살펴보자.

1. 빈 자리는 공백 상태, 오른쪽 정렬, 총 10자리 공간 확보

입력

print("{0: >10}". format(500))

출력

       500

2. 양수일 경우 +로 표시, 음수 일 경우 -표시, 자리 10칸 확보, 오른쪽 정렬

입력

print("{0: >+10}". format(500))
print("{0: >+10}". format(-500))

출력

      +500
      -500

3. 왼쪽 정렬, 빈칸에 _로 채움, +-표시, 자리 10칸 확보

입력

print("{0:_<+10}". format(500))

출력

+500______

4. 3자리마다, ,(콤마)를 출력

입력

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

출력

1,000,000,000

5. 3자리마다 ,(콤마)를 출력하고 +-부호 붙이기

입력

print("{0:+,}". format(1000000000))
print("{0:+,}". format(-1000000000))

출력

+1,000,000,000
-1,000,000,000

6. 3자리마다 ,(콤마) 찍기, +-부호 출력, 30개의 자릿수 확보, 공백에 *표시하기, 왼쪽정렬

입력

print("{0:*<+30}". format(1000000000))

출력

+1000000000*******************

7. 소수점 출력

입력

print("{0:f}". format(5/3))

출력

1.666667

원하는 소수점 자리 수까지 출력할 수 있다.

입력

print("{0:.2f}". format(5/3))

출력

1.67

{0:.2f}에서 2는 소수점 둘째자리까지 나타내고 셋째자리에서 반올림한다.

0개의 댓글