코테/파이썬

코테를 위한 파이썬 문법 - 5. 입출력

mildroast 2021. 8. 15. 12:54

입출력

처음에 파이썬으로 넘어오면서 가장 헷갈렸던게 입력이다.
지금은 익숙하지만 다시 되집어본다.

 

입력

코테의 첫 단계는 데이터를 입력받는 것이다.
적절한 입력을 받아 알고리즘을 수행한 뒤 결과를 출력하기 때문이다.

input() 함수는 한 줄의 문자열을 입력 받도록 해준다.
입력받은 데이터를 정수형 데이터로 처리하기 위해 int() 함수를 이용하여 문자열을 정수로 바꾼다.

여러 개의 데이터를 입력 받을 때는 list(map(int, input().split())) 와 같은 식의 코드를 이용한다.
input()으로 받은 문자열을 split()을 통해 공백을 기준으로 데이터를 쪼갠 후, map을 이용하여 각 데이터에 int() 함수를 적용한다. 그 결과를 다시 list() 함수를 통해 리스트로 변환한다.

1
2
3
4
5
6
7
8
# 데이터의 개수 입력
= int(input()) # 5
 
#각 데이터를 공백으로 구분하여 입력
data = list(map(int, input().split())) # 4 5 2 1 3
 
data.sort()
print(data) # [1, 2, 3, 4, 5]
cs
1
2
3
#공백으로 구분하여 각 변수에 입력 받기
a, b, c = map(int, input().split()) # 1 2 3
print(a, b, c) # 1 2 3
cs

 

하지만 위와 같은 방법으로 입력을 받을 시에 속도가 느려 시간초과가 날 수 있다.
더 빠른 방법이 있다.

1
2
3
import sys
data = sys.stdin.readline().rstrip() # 1
print(data) # 1
cs

readline() 으로 입력을 받으면 엔터가 줄 바꿈 기호로 입력이 된다.
이 기호를 제거하기 위해 rstrip()을 사용한다.

 

출력

print() 함수를 통해 변수나 상수를 매개변수로 입력 받아 표준 출력을 진행한다.
각 변수를 콤마(,)로 구분해 매개변수에 넣을 수 있다. 이 때 각 변수가 띄어쓰기로 구분된다.

또한 print()는 기본적으로 출력 이후에 줄 바꿈을 수행한다.
print()를 사용할 때 마다 줄 바꿈이 수행된다.

1
2
3
4
5
6
7
8
= 1
= 2
 
# 각 변수가 띄어쓰기로 구문된다
print(a, b) # 1 2
 
# 줄 바꿈 이후 출력
print(b, a) # 2 1
cs

 

더하기 연산자를 통해 문자열을 합쳐 print() 할 수 있다.
이 때 str() 함수를 통해 출력할 변수를 문자열로 바꿔 준다.

1
2
answer = 7
print("정답은 " + str(answer) + '입니다.'# 정답은 7입니다.
cs

 

각 변수를 콤마로 구분해 출력하는 경우 의도치 않은 공백이 삽입 될 수 있다.
위와 같이 전부 문자열로 바꿔 출력을 할 수 있지만, 파이썬 3.6 버전 이상부터는 f-string 을 사용하여 해결할 수 있다.
문자열 앞에 접두사 f를 붙여 중괄호({})에 변수를 넣어 해결한다.

1
2
answer = 7
print(f"정답은 {answer}입니다."# 정답은 7입니다.
cs