1. input( ) 입력
파이썬에서 데이터를 입력받을 때 input()
함수를 사용합니다.
input()
함수는 한 줄의 문자열을 입력받도록 해줍니다.
여러 개의 데이터를 입력받을 때는 입력되는 데이터가 공백으로 구분되는 경우가 많습니다.
이 때 입력받은 문자열을 띄어쓰기로 구분하여 받아오기 위해서 split()
을 이용합니다.
data = list(map(int, input().split()))
보통 공백으로 구분된 여러 개의 정수를 입력받아 리스트에 저장하기 위해 위와 같은 코드를 자주 사용합니다.
2. 입력의 개수가 많을 때 input( ) 시간 초과 ?
정렬, 이진 탐색, 최단 경로 문제 등에서 엄청 많은 양의 데이터가 입력되는 경우가 있습니다.
이럴 때는 input()
으로 입력을 받는 것 만으로도 시간 초과가 될 수 있습니다.
Python의 기본 input()
함수는 동작 속도가 느리기 때문에 입력의 개수가 많을 때 이를 그대로 사용하지 않습니다.
import sys
sys.stdin.readline().rstrip()
이 경우에는 Python의 sys 라이브러리에 정의되어 있는 위와 같은 함수를 사용합니다.
❗️sys 라이브러리를 사용해 입력을 받을 때는 한 줄 입력을 받고 rstrip()
함수를 반드시 호출해주어야 합니다.
❗️readline()
으로 입력하면 입력 후의 Enter가 줄 바꿈 기호로 입력되기 때문에, 이를 제거하기 위해 호출해주어야 합니다.
3. print( ) 출력
Python의 print()
함수는 출력 후에 줄 바꿈이 있어 사용할 때마다 줄이 바뀝니다.
a = 2
b = 3
print(a, b)
// 출력 : 1 2
print()
함수에 매개변수를 넣을 때 콤마(,)로 구분하면 각 매개변수 출력 사이에 띄어쓰기로 구분되어 출력됩니다.
만약 출력할 때 문자열과 수를 함께 출력해야 하는 경우에, + 연산자를 이용해 둘을 연결하고자 하면 Python은 자동으로 자료형을 변환해주지 않기 때문에 오류가 발생합니다.
이 경우에는 str()
함수를 이용해 수를 문자열로 바꾸어주거나, 각 자료형을 콤마(,)로 구분하여주면 됩니다.
answer = 100
print("출력 값은" + str(answer) + "입니다.")
// print("출력 값은", str(answer), "입니다.") -> 동일
// 출력 : 출력 값은 100 입니다.
f-string ?
Python 3.6 이상부터 f-string 문법을 사용할 수 있습니다.
f-string은 문자열 앞에 'f'를 붙여 사용할 수 있고, 이를 이용하면 문자열에서 중괄호 안에 변수를 넣어 자료형 변환 없이 문자열 안에 변수의 값을 넣을 수 있습니다.
answer = 100
print(f"출력 값은 {answer} 입니다.")
// 출력 : 출력 값은 100 입니다.