[파이썬] 7. 데이터의 자료형 (data type) 바꾸기: 캐스트 (Cast)

마팍·2020년 11월 22일
0

파이썬 공부

목록 보기
7/10

*윤인성님께서 집필하신 <혼자 공부하는 파이썬>으로 공부했던 내용을 기반으로 작성되었습니다.

6장에서 input()함수를 다루며 문자열(str)로 인식되는 인자의 값을 정수형(int)으로 변환시켜 주는 작업을 했었다.

>>>A = int(input("A를 지정하십시오>")) # 엔터
A를 지정하십시오> 10
>>>B = int(input("B를 지정하십시오>")) # 엔터
B를 지정하십시오> 10
>>>print(A + B)
20

이러한 작업을 캐스트(cast)라 한다.

캐스트 (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 

Value Error 예외

캐스트 과정에서 변환할수 없는 것을 시도하면 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'
profile
데린이입니다.

0개의 댓글