본문 바로가기
Python/Python 문법

Python 입력, input( ), [ split, map ]

by lchit 2019. 12. 18.

 

 

 

input( ) 메서드는 사용자에게 변수의 값을 전달받기 위해 존재한다 

 

 


1. input( ) 메서드의 기본 입력받기

※변수명 = input()

 

 

제일 기본적인 입력받는 방법이다

아래는 실행 결과이고 이찬호를 입력하자

출력이 정상적으로 대입되어 진행된다.

 

 

2. input( ) 함수의 인수로 출력하여 입력받기

 

 

 

위 코드를 실행시키자 인자 값을 출력하며 입력받는 결과를 볼 수 있다

이제 이름을 입력한다면 그다음 작업인 출력 print( )를 실행할 것이다

 

 

 


 

input( )으로 입력받는 데이터는 전부 문자열 데이터이다

그럼 나이를 입력받아 % d 서식 문자에 정수형으로 대입하려 한다면?

대입 전에 형 변환 작업을 진행하여야 한다.

 

 

 

3. 형 변환  데이터 대입

 

(1) 서식 문자 출력 시 형 변환

 

오류 코드

 

위와 같은 코드 실행 시 나이를 정수로 입력받고

% d 정수형 서식 문자에 데이터를 대입하려니

정수형이 아니라고 오류가 발생한다.

 

정수형으로 형 변환이 필요한 시점이다

 

방법1 서식문자 출력에서 형변환

 

% d 정수형에 데이터를 넘겨주며 형 변환을 하자 

오류가 사라지고 print문이 정상 출력된다.

 

 

(2) 입력 시 형 변환

 

 

input( ) 문을 int( )로 감싸줬다

이걸로 입력 받음과 동시에 데이터를 형 변환할 수 있다.

타입 확인 결과 int형으로 나온다

 


split( ) 메서드 활용 

이름과 나이를 공백으로 구분하여 동시에 

입력받고 싶다면?

 

 

4. split( ) 메서드를 활용하여 두 가지의 데이터 공백으로 입력받기

 

스플릿으로 두가지 데이터 동시 입력받기

 

두 가지 변수를 동시에 생성하고 있는데 이는 파이썬에서

제공되는 기능 중 하나이다.

 

, 로 변수명을 구별하고 각각 데이터를 담아주면 되는데 

입력 시 공백을 포함하고 두 가지의 데이터를 입력한다 하더라도

공백이 구분자가 아니고 하나의 문자이기에 오류가 발생한다

 

그러기에 input() 문 뒤에. split( )을 넣어줌으로써

입력받는 데이터를 공백으로 구분하여 두 데이터로 나누겠다 라고 

코드를 입력한 것이다

 

공백으로 구분된 '이찬호'와 '27'은 각각 name과 age에 담긴 것이다

 

split( )에서 ( ) 안에는 사실 ' ' 이 생략되어있다 

즉, 디폴트값으로 공백이 기본 구분자가 되는데 

괄호 안에 다른 구분 문자를 넣는다면 그 구분 문자로 데이터는

나뉠 것이다.

 

 

5. map( ) 사용 시 일괄적인 형 변환이 가능하다

위에서 input() 을 int()로 감싸주어 형 변환 입력을 받은 바 있다

복수의 데이터를 입력받으면서 모두가 숫자로 변환하고 싶다면 

map( )을 이용하자

 

 

map( )의 이용

 

복수 데이터를 입력 받을때 map(자료형, input( '출력문' ). split( ) )으로 작성한다면

공백 구분자로 하여금 모든 데이터를 자료형에 맞춰 변환되어 저장시켜준다 

입력받은 값이 모두 문자열이 아닌 정수형으로 변환되었기에

문자+문자+문자 의 연결이 아닌 정수+정수+정수의 연산이 되어

250이라는 결과를 나타낼수있었다