[Python] 파이썬 입력받는 방법

Hyunji·2022년 3월 1일
0

Python

목록 보기
2/13
post-thumbnail

파이썬으로 입력받는 방법에는 보편적으로 사용되는 input() 이 있다.

input()의 사용법

  • input 은 입력되는 모든 것을 문자열로 취급한다.
>>> a = input()
Life is too short, you need python
>>> a
'Life is too short, you need python'
>>>
  • 정수로 출력되게 하고 싶다면 아래 방법으로 입력받으면 된다.
  • 입력받은 값을 숫자(정수)로 변환하려면 input을 int로 묶어준다.
a = int(input())
b = int(inpt())

print(a + b)
  • int 는 괄호 안에 있는 값을 정수로 변환하며 문자열이든 실수든 상관없이 정수로 변환한다.

  • input으로 입력받은 값을 실수로 변환하려면 float로 묶어준다.
    변수 = float(input())
    변수 = float(input(문자열))

a = float(input('첫 번째 숫자를 입력하세요': ')) # float 를 사용하여 입력 값을 실수로 변환
b = float(input('두 번째 숫자를 입력하세요': ')) # float 를 사용하여 입력 값을 실수로 변환

print(a + b)

하지만 알고리즘을 풀다보면 inpt()으로 입력을 받아 문제를 풀었는데 시간초과가 되는 경우가 많다. (특히 반복문을 써서 여러 줄을 입력 받는 경우)
그럴때에는 Python의 표준 라이브러리인 sys의 sys.stdin.readline() 을 사용해서 값을 입력받으면 된다.

sys: sys모듈은 Python 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.

sys.stdin.readline()의 사용법

  1. 한 개의 정수를 입력 받을 때
import sys

a = int(sys.stdin.readline())
  • 그냥 sys.stdin.readline() 의 return 값은 문자열(string)이기 때문에 정수로 입력 받으려면 형변환을 해줘야 함
  • int()로 형변환을 해주면 개행무자는 사라지고 정수형태만 남음
  1. 문자열을 받을 때
import sys

sentence = sys.stdin.readline()
  • return값이 문자열이므로 그냥 문장을 하나 받을 때 사용 가능
  • 출력하면 문자열에 개행문자 (\n)가 기본으로 추가됨도 확인 가능
  1. 정해진 개수의 정수를 한 줄에 입력 받을 때
import sys

a,b,c = map(int,sys.stdin.readline().split())
  • map()은 반복 가능한 객체(리스트)에 대해 각가그이 요소들을 지정된 함수로 처리해주는 함수
  1. 임의의 개수의 정수를 입력 받을 때
import sys

data = list(map(int, sys.stdin.readline().split()))
  • split() 은 문자열을 나눠주는 함수
    • 괄호 안에 특정 값을 넣어주면 그 값을 기준으로 문자열을 나누고, 아무 값도 넣어주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 나눔
  • list() 는 자료형을 리스트형으로 변환 해주는 함수
  • map() 은 맵 객체를 만들기 때문에, 리스트형으로 바꿔주기 위해서 list() 로 감싸준다
  1. N줄의 문자열을 입력 받아 리스트에 저장할 때
import sys

n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip for i in range(n)]
  • strip() 은 문자열 맨 앞과 맨 끝의 공백문자를 제거한다.
  1. 임의의 개수의 정수를 N줄 입력받아 2차원 리스트에 저장할 때
import sys

data = []
n = int(sys.stdin.readline())
for i in range(n) :
	data.append(list(map(int,sys.stdin.readline().split())))
  • 각 요소의 길이가 동일한 2차원 리스트도 만들 수 있고
  • 각각 길이가 다른 2차원 리스트도 입력 받을 수 있음

https://dojang.io/mod/page/view.php?id=1219
https://wikidocs.net/33
https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

profile
성장중인 개발자

0개의 댓글