자기계발/Python

[Python] 기본3. input() 함수로 데이터 입력받기

호등 2022. 2. 23. 16:26
반응형

혼자 공부하는 파이썬 교재 내용 보고 정리한 내용입니다.

 

사용자 입력 : input()

input() 함수의 입력 자료형

input() 함수로 입력받는 텍스트의 자료형은 전부 스트링형(str형)이다.

"Hello"를 입력받아도, "12345" 숫자를 입력받아도, "false" bool 값을 입력받아도 전부 문자열로 취급한다.

따라서 변수에 input()함수로 값을 입력받고 여기에 숫자를 더해주면 당연히 에러가 발생한다.

 

이때 필요한게 바로 캐스트(cast)

자료형을 바꿔주면 아무런 문제가 생기지 않는다.

 

문자열을 숫자로 바꾸기

string_a = input("입력A> ") #프로그램 실행시 123을 입력받음
int_a = int(string_a) #int형으로 cast하는 과정

string_b = input("입력B> ") #프로그램 실행시 456을 입력받음
int_b = int(string_b) #int형으로 cast하는 과정

print("문자열 자료: ", string_a + string_b) #결과 : 123456
print("숫자 자료: ", int_a + int b) #결과 : 579

책에 있는 예시를 거의 그대로 가져왔다.

cast를 이해하는데 아주 좋은 예시 같다.

 

첫 번째 결과는 입력값이 숫자이지만 문자열끼리 더했으니 123456이 나오고,

두 번째 결과는 int형으로 cast해주어서 123+456 = 579의 결과를 갖게 된다.

 

int형 말고 부동소수점형 float형으로도 cast가 가능하다.

참고로 부동소수점형(float형)을 int형으로 cast 시도하면 에러가 발생한다.

int("123.456")

ValueError: invalid literal for int() with base 10: '123.456'

소수점 아래 데이터가 유실되면서 저장될 줄 알았는데 에러가 발생함..!

 

 

반응형