파이썬 다양한 입력방법 (input(), readline())

pyhoo·2020년 7월 20일
6

Python

목록 보기
1/2
post-thumbnail

1. input()

str = input()
num = int(input())

기본적인 입력 방법으로, input()자체는 문자열을 입력받는 것으로 처리됩니다.
그렇기 때문에 int(input())을 해주어야 숫자형 입력이 가능해집니다.

  • num변수에 저장된 숫자, 예를 들어 1993이란 숫자를 각각 하나씩 쪼개고 싶을 땐,
num = list(str(num))
print(num)

2. input().split()

split() 내장함수는 문자열을 특정 구분자로 나누고 싶을 때 사용합니다.
가령 split(',')은 쉼표로 구분된 문자열을 나눌 때 사용하면 됩니다다.
split()은 공백으로 되어있으니 띄어쓰기를 구분할 때 사용됩니다.

str이라는 변수에 여러 입력값을 저장합니다.

str = input().split()
>>> ['you','are','welcome']

예를들어, 'you are welcome'이란 문자열에 .split()을 적용하면 위와 같이 출력됩니다.
당연한 소리지만 str[0]은 'you'가 됩니다.

3. map()

위의 input().split()은 하나의 변수에 리스트의 형태로 저장됩니다.
여러 변수를 생성하여 각각의 값을 할당하고 싶을 땐 map()함수를 이용합니다.

주의할 점은 map()함수는 최소한 2개의 인자를 괄호안에 써주어야하는데,

map(int, input().split())  # 숫자형을 입력받겠다.
map(str, input().split()) # 문자형을 입력받겠다.

위와 같은 형식으로 작성해야 합니다. 그렇지 않으면 에러납니다.

a, b, c = map(input().split()
print(a,b,c)
>>> 1, 2, 3

4. sys.stdin.readline()

대량의 데이터를 반복적으로 입력받아야 할 때, input()대신 sys.stdin.readline()을 이용하면 성능(속도)이 향상됩니다. 주로 백준 알고리즘 문제를 풀 때 유용합니다.자바에서 Scanner보다 BufferedReader가 빠른것과 같은 맥락입니다.

  • import sys 를 먼저 선언해주어야 합니다.
import sys
read =  sys.stdin.readline()
print(read)

하나의 변수(read)에 str형태로 저장합니다.

import sys
read2 =  sys.stdin.readline().split()
print(read2)

하나의 변수(read2)에 list형태로 저장합니다.

  • 각각의 리스트 원소를 저장하고 싶을 땐, map()함수를 사용합니다.
import sys
year, month, date =  map(int, sys.stdin.readline().split())
print(year, month, date)

5. 배열

백준 문제를 풀 때 배열을 입력해야하는 상황이 많습니다.

  • 1차원 배열
a = [0 for _ in range(5)]
print(a)

리스트 내에서 for문을 5번 반복시켜 0을 5번 만들어 1차원 배열을 만듭니다.

  • 2차원 배열
m, n = 5,4
a = [[0]*m for _ in range(n)]
print(a)

위와 같은 원리입니다.
리스트 내에서 [0] * m 에 대해서 for문을 n번 반복합니다.
여기선 for문의 반복횟수가 행(row)이 되고 m이 column의 수가 되어, n x m 형태의 2차원 배열이 만들어집니다.

6. for문을 이용한 N번 입력

answer = [int(input()) for _ in range(N)]

N은 사용자가 임의로 지정할 수 있습니다.
N이 5이면, 원소가 다섯개인 리스트를 생성할 수 있습니다.

3개의 댓글

comment-user-thumbnail
2023년 2월 6일

알고리즘 스터디를 진행하는데 이글이 너무 잘 정리되어 있어서 혹시 제가 제 블로그에 좀 수정해서 올려도 될까요? reference link 는 걸어두겠습니다

2개의 답글