코테를 위한 파이썬 문법 - 5. 입출력
입출력
처음에 파이썬으로 넘어오면서 가장 헷갈렸던게 입력이다.
지금은 익숙하지만 다시 되집어본다.
입력
코테의 첫 단계는 데이터를 입력받는 것이다.
적절한 입력을 받아 알고리즘을 수행한 뒤 결과를 출력하기 때문이다.
input() 함수는 한 줄의 문자열을 입력 받도록 해준다.
입력받은 데이터를 정수형 데이터로 처리하기 위해 int() 함수를 이용하여 문자열을 정수로 바꾼다.
여러 개의 데이터를 입력 받을 때는 list(map(int, input().split())) 와 같은 식의 코드를 이용한다.
input()으로 받은 문자열을 split()을 통해 공백을 기준으로 데이터를 쪼갠 후, map을 이용하여 각 데이터에 int() 함수를 적용한다. 그 결과를 다시 list() 함수를 통해 리스트로 변환한다.
1
2
3
4
5
6
7
8
|
# 데이터의 개수 입력
n = 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
|
a = 1
b = 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 |