*윤인성님께서 집필하신 <혼자 공부하는 파이썬>으로 공부했던 내용을 기반으로 작성되었습니다.
6장에서 input()함수를 다루며 문자열(str)로 인식되는 인자의 값을 정수형(int)으로 변환시켜 주는 작업을 했었다.
>>>A = int(input("A를 지정하십시오>")) # 엔터
A를 지정하십시오> 10
>>>B = int(input("B를 지정하십시오>")) # 엔터
B를 지정하십시오> 10
>>>print(A + B)
20
이러한 작업을 캐스트(cast)라 한다.
데이터의 자료형(data type)을 변환시켜주는 작업
int(): 문자열을 int(정수) 자료형으로 변환한다.
float(): 문자열을 float(실수) 자료형으로 변환한다.
str(): 숫자형을 str(문자열) 자료형으로 변환한다.
예)
>>>A = "10"
>>>B = "20" # A와 B를 숫자형이 아닌 문자열로 선언하였다.
>>>A + B
'1020' #문자열이기 때문에 '1020'으로 나온다.
>>>int(A) + int(B) # int()함수를 이용하여 A와 B의 자료형을 숫자로 변환시켜주었다.
30
캐스트 과정에서 변환할수 없는 것을 시도하면 ValueError 예외가 발생한다.
이러한 경우는 하기와 같다.
1. 숫자가 아닌 것을 숫자로 변환할때
예) int("안녕하세요")
>>>int("안녕하세요")
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
int("안녕하세요")
ValueError: invalid literal for int() with base 10: '안녕하세요'
2. 소수점이 있는 숫자 형식을 정수형을 바꾸려할때 (float -> int)
예) int("43.43")
>>>int("43.43")
Traceback (most recent call last):
File "<pyshell#52>", line 1, in <module>
int("43.43")
ValueError: invalid literal for int() with base 10: '43.43'