Programming Language/Python 기본문법

[Python] 기본 문법(8): 입출력문(sep, end, file, ljust(), rjust(), zfill())

lxvxxu 2024. 7. 18. 22:26

표준 입출력

input()

프로그램을 실행했을 때 User로부터 어떤 값을 입력받는 용도로 사용

User가 값을 입력하고 [Enter] 버튼을 누르면 이 값은 항상 문자열 형태로 변수에 저장된다.

 

변수형을 바꾸고 싶다면 형변환을 하면 된다.

temp = int(input("오늘 기온은 몇 도인가요?"))

 

 

 

 

https://thebook.io/080357/0272/

 

코딩 자율학습 나도코딩의 파이썬 입문: 8.2 표준 출력 시 유용한 기능

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io


sep

- ','

- '+'

 

print() 함수 정의에서 sep 매개변수의 기본값은 공백(" ")이었다.

근데 기본값 대신 다른 값을 넣어 print() 함수를 실행하면 해당 값을 구분 기호로 사용한다.

 

print("파이썬", "자바)
print("파이썬", "자바", sep=",")
print("파이썬", "자바", sep=" vs ")

 

 

end

print("파이썬", "자바", sep=", ", end-"? ")
print("무엇이 더 재미있을까요?")

'>> 이전에 함수(Function)에서 다룸

 

 

file

출력 위치 지정하기

 

import sys
# sys 모듈을 가져와서 사용하겠다.

print("파이썬", "자바", file=sys.stdout)
# print()문의 실행 결과를 현재 표춘 출력인 VSCode의 터미널에 출력하라.

print("파이썬", "자바", file=sys.stderr)
# 오류가 발생했을 때 터미널에 오류 메시지를 띄우라는 뜻

 

stdout : 표준 출력 (Standard Output)

stderr : 표준 오류 (Standard Error)

 

※ 로그(log)를 남긴다

프로그램의 실행 과정에서 몇 시에 어떤 작업을 어떤 방식으로 수행하고 있으며

실행결과가 어떠한지 등의 정보를 기록한다.

이를 로그를 남긴다고 한다.

 

※ 프로그램이 의도치 않게 작동했을 때 오류 로그를 확인해서 빠르게 상황을 파악하고 그에 맞는 조치를 취할 수 있다.
다만, 두 값은 어느 정도 규모가 있는 Project를 진행할 때 필요한 기능이고, 이는 심화 내용이므로 입문 단계에서는 '이런 기능이 있구나." 정도만 알고 넘어가도 OK

 

터미널 대신 파일에 출력하는 방법도 있다.

이 때는 print() 문으로 출력하려는 내용이 지정한 파일에 표시되고, 터미널에서는 출력 내용을 확인할 수 없다.

 

 

ljust(), rjust()

for문에 각각 subejct와 score라는 이름으로 key와 value를 대입할 두 변수를 지정하고

반복 대상을 scores.items()로 작성하면 score 딕셔너리의 key와 value가 차례로 subject와 score 변수에 대입된다.

* l = left, r = reft

score = {"수학": 0, "영어": 50, "코딩": 100}

for subject, score in scores.items():
	print(subejct, score)
실행 결과
수학 0
영어 50
코딩 100

 

이 때 과목명과 점수 사이 간격을 조금 더 벌리고 점수는 오른쪽에 정렬하기 위해 ljust() 함수와 rjust() 함수 사용

 

score = {"수학": 0, "영어": 50, "코딩": 100}

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

 

 

subject.ljust(8)

과목명이 담긴 subject 변수에 ljust(8)로 접근해 출력

전달값 '8'에 의해 공간을 총 8칸 확보.

ljust() 함수는 문자열을 왼쪽(left) 정렬하므로 과목명을 왼쪽 정렬로 출력

 

str(score).rjust(4)

점수는 숫자이므로 score 변수에 담긴 값 = 정수형

ljust(), rjust() 함수는 문자열만 정렬하므로 문자열로 바꾸기 위해 str()로 감싼다.

그리고 str()로 감싼 score 변수(문자열이 되~)에 rjust(4)로 접근해 출력

 

전달값 '4'에 의해 공간을 총 4칸 확보.

rjust() 함수는 문자열을 오른쪽(right) 정렬하므로 과목명을 오른쪽 정렬로 출력

 

※ ljust(), rjust() 모두 값이 차지 않은 나머지 공간은 빈칸으로 출력

 

zfill()

숫자를 '1' ->  '001'로 출력하기 위해서는 zfill() 함수를 사용한다.

* 'z' = zero

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