[Python] 9-3장 입출력, 출력 포맷(sep, end, r(l)just, zfill), 출력 포맷 응용

입력

- input("~")

: 뒤에 커서가 깜빡이고 거기에 값을 입력하면 값이 문자열 형태로 반환

: 항상 문자열 형태로 입력

answer = input("값 입력 : ")  # 값 입력 : 5
print(type(answer))  # <class 'str'>
print("입력하신 값은 " +answer+ "입니다.")  # 입력하신 값은 5입니다.

 

 

 

sep

: 문자열 사이를 어떻게 할 지 결정

print("Python", "Java", sep = ",")  # Python,Java
print("C", "Java", sep = " vs ")  # C vs Java

 

 

 

end

: 문자열의 끝부분을 어떻게 할지 결정

print("Python", "Java", sep = " vs ", end ="?")
print(" 어떤 걸 고를까?")  # Python vs Java? 어떤 걸 고를까?

 

 

 

문자열 정렬(rjust, ljust)

- 문자열.rjust(a)

: a칸 확보해서 오른쪽(right) 정렬

 

- 문자열.ljust(a)

: a칸 확보해서 왼쪽(left) 정렬

scores = {"국어" : 0, "수학" : 50, "영어" : 100} # 딕셔너리
for subject, score in scores.items(): # key와 value를 튜플 형식으로 가져옴
    print(subject.ljust(6), str(score).rjust(4), sep=":")
    
# 국어    :   0
# 수학    :  50
# 영어    : 100

 

 

 

문자열 빈 공간에 0 채우기

- 문자열.zfill(a)

: a칸 확보해서 빈 공간에 0(zero) 채움

for num in range (1, 11):
   print("대기 번호 : ", str(num).zfill(3))
   
# 대기 번호 :  001
# 대기 번호 :  002
# ...
# 대기 번호 :  010

 

 

 

출력 포맷 응용

- 빈 칸은 빈 공간으로 두고, 오른쪽 정렬하되, 10자리 확보

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

 

 

- 양수일 때는 + 표시, 음수일 때는 - 표시

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

 

 

- 빈 자리를 =으로 채우고, 10칸 왼쪽 정렬

print("{0:=<10}".format(500))  # 500=======

 

 

- 3자리마다 콤마 찍어주기

print("{0:,}".format(10000000))  # 10,000,000

 

 

- 3자리마다 콤마 찍어주고, 부호 붙이고, 20칸 왼쪽 정렬, 빈 자리는 ^ 채우기

print("{0:^<+20,}".format(10000000))  # +10,000,000^^^^^^^^^

 

 

- 소수점 특정 자리수까지만 표시

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