<개인공부>/[Python]

[python] 파이썬 타입 변환, 형변환 (float, int, str, chr, bool)

BlockDMask 2020. 10. 4. 00:30
반응형

안녕하세요. BlockDMask 입니다.
오늘은 간단하게 파이썬에서 데이터 타입을 변환할 수 있는 방법들에 대해서 알아볼것 입니다.
실수로 변환하는 float, 정수로 변환 하는 int, 문자열로 변환하는 str, 문자로 변환하는 chr 그리고 불리언 타입으로 변환하는 bool 까지 이렇게 6가지 타입 변환에 대해서 알아보려고 합니다.
이해를 돕기 위하여 간단한 예제와 함께 작성해보려 합니다.
그럼 시작하겠습니다.

<목차>
1. 파이썬 정수 변환 - int()
2. 파이썬 실수 변환 - float()
3. 파이썬 문자열 변환 - str()
4. 파이썬 문자 변환 - chr()
5. 파이썬 불리언 변환 - bool()



1. python int


int(x)는 인자로들어온 x를 정수 타입으로 반환을 해주는 기능을 합니다.
int(정수)가 들어오면 정수를 정수 타입으로 변환하여 반환을 해주고
int(문자열)이 들어오면 문자열에 맞는 정수 타입을 반환해 줍니다. 만약에 바꿀수 없는 문자열 이라면 오류를 내뱉습니다.
이렇게 우리가 상식적으로 생각을 했을때 int 타입으로 변환이 가능할것 같다 싶은것들은 변환이 가능합니다.
int(불리언)도 가능합니다. 불리언 타입을 정수로 변환 가능하도록 아래 예제를 보면 파이썬 내부적으로 True 는 1, False 는 0으로 변환할 수 있게 만들어 놓은걸 볼 수 있습니다.
예제를 한번 볼까요?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 파이썬 int 타입 변환 예제
 
int(정수) : 정수를 정수로 변환 (가능함. 의미없음)
= int(10)
print(f'1. int(10) = {a}, type(a) = {type(a)}')
 
 
int(실수) : 실수를 정수로 변환
= int(3.141592)
print(f'2. int(3.141592) = {b}, type(b) = {type(b)}')
 
 
int(불리언) : 불리언을 정수로 변환
= int(True)
print(f'3. int(True) = {c}, type(c) = {type(c)}')
 
 
int(문자) : 문자를 정수로 변환
# d = int('a') 오류 변환할 정수가 없음
= int('1')
print(f'4. int("1") = {d}, type(d) = {type(d)}')
 
 
int(문자열) : 문자열을 정수로 변환
# e = int('blockdmask') 오류 변환할 정수가 없음
= int('112')
print(f'5. int(\'112\') = {e}, type(e) = {type(e)}')
cs

결과

결과에서 보이듯이 정수, 실수, 불리언, 문자를 모두 int 타입으로 변환하는것을 볼 수 있습니다. 또한 정수로 변환할수 없는 문자나 문자열은 에러가 발생하게 됩니다.


2. python float


float(x)는 인자로 들어온 x를 실수 타입으로 변환해서 반환해주는 기능을 합니다.
앞서 살펴본 int(x)와 거의 동일하기 때문에 바로 예제로 보여드리겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 파이썬 float 타입 변환 예제
 
float(정수) : 정수를 실수로 변환
= float(10)
print(f'1. float(10) = {a}, type(a) = {type(a)}')
 
 
float(실수) : 실수를 실수로 변환 (가능, 의미없음)
= float(3.141592)
print(f'2. float(3.141592) = {b}, type(b) = {type(b)}')
 
 
float(불리언) : 불리언을 실수로 변환
= float(False)
print(f'3. float(False) = {c}, type(c) = {type(c)}')
 
 
float(문자) : 문자를 실수로 변환
# d = float('a')  # 오류 : 변환할 실수가 없음
= float('2')
print(f'4. float("2") = {d}, type(d) = {type(d)}')
 
 
float(문자열) : 문자열을 정수로 변환
# e = float('blockdmask') # 오류 : 변환할 실수가 없음
= float('3434')
print(f'5. float(\'3434\') = {e}, type(e) = {type(e)}')
cs

결과

실수로 변환할수 없는 문자, 문자열을 제외하고 모두 각자 알맞게 float 타입으로 변환이 됩니다. False는 0.0이 변환이 된걸 볼 수 있습니다. 그럼 궁금하시다면 True도 한번 변환해 보세요.

3. python str


str(x)는 인자로 들어온 x를 문자열로 변환시켜서 반환해 주는 기능을 합니다.
숫자를 문자열로, 실수를 문자열로 바꿔줍니다.
bool 타입은 어떻게 바꿔주는지 궁금하시지 않나요? 예제로 한번 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 파이썬 str 타입 변환 예제
 
# str(정수) : 정수를 문자열로 변환
= str(10)
print(f'1. str(10) = {a}, type(a) = {type(a)}')
 
 
# str(실수) : 실수를 문자열로 변환
= str(3.141592)
print(f'2. str(3.141592) = {b}, type(b) = {type(b)}')
 
 
# str(불리언) : 불리언을 문자열로 변환
c1 = str(True)
print(f'3-1. str(True) = {c1}, type(c1) = {type(c1)}')
 
c2 = str(False)
print(f'3-2. str(False) = {c2}, type(c2) = {type(c2)}')
 
 
# str(문자) : 문자를 문자열로 변환
d1 = str('2')
print(f'4-1. str("2") = {d1}, type(d1) = {type(d1)}')
 
d2 = str('a')
print(f'4-2. str("a") = {d2}, type(d2) = {type(d2)}')
 
 
# str(문자열) : 문자열을 문자열로 변환 (가능, 의미없음)
= str('BlockDMask')
print(f'5. str(\'3434\') = {e}, type(e) = {type(e)}')
cs

결과


str(x)는 x를 무조건 다 문자열로 변환 시키는 걸 볼 수 있습니다.
조금 특이한것은 불리언 타입을 문자열로 변환시킬때가 조금 특이합니다. True를 그대로 True로 변환하는게 신기하긴 합니다.


4. python chr


chr(x)는 인자로 들어온 x를 문자로 변환시켜서 반환해 주는 기능을 합니다.
특히 알아야할 점은 인자로 들어오는 x에 해당하는 하나의 캐릭터를 그것에 맞는 unicode(유니코드) 문자로 변환하여 반환합니다.
알기 쉽게 예제로 한번 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 파이썬 chr 타입 변환 예제
 
# chr(정수) : 정수를 문자로 변환
= chr(54)
print(f'1. chr(54) = {a}, type(a) = {type(a)}')
 
= chr(55)
print(f'2. chr(55) = {b}, type(b) = {type(b)}')
 
= 64
while i <= 70:
    print(f'chr({i}) : {chr(i)}')
    i = i + 1
 
 
# chr(실수) : 실수를 문자로 변환 - 불가능
# b = chr(3.141592)
 
 
# chr(불리언) : 불리언을 문자로 변환
# 이 경우에는 True가 1, False가 0으로 취급되어서 가능
c1 = chr(True)
print(f'3-1. chr(True) = {c1}, type(c1) = {type(c1)}')
 
c2 = chr(1)
print(f'3-2. chr(1) = {c2}, type(c2) = {type(c2)}')
 
if c1 == c2:
    print('c1 == c2')
 
 
c3 = chr(False)
print(f'3-3. chr(False) = {c3}, type(c3) = {type(c3)}')
c4 = chr(0)
print(f'3-4. chr(0) = {c4}, type(c4) = {type(c4)}')
 
if c3 == c4:
    print('c3 == c4')
 
 
# chr(문자) : 문자 입력 - 불가능
# d1 = chr('2')
# d2 = chr('a')
 
# chr(문자열) : 문자열 입력 - 불가능
# e = chr('BlockDMask')
 
cs

결과

인자로 들어온 숫자를 유니코드 표에 맞는 문자로 변환시켜서 반환하는 것을 볼 수 있습니다.
인터넷에 유니코드 표를 검색하면 쉽게 볼 수 있습니다.
제가 알기 쉽게 64, 65번을 출력해 보았는데요. 64번은 골뱅이문자(@)를 말하고 65번 부터는 대문자 A를 가리킵니다.
여기서도 True, False는 1과 0을 뜻하게 되어서 각각 유니코드 1, 0에 맞는 문자로 변환 환됨을 확인할 수 있었습니다.


5. python bool


bool(x)는 인자로 들어온 x를 bool 타입으로 변환시켜서 반환해 주는 기능을 합니다.
x인자가 문자열이라면 비었는지 아닌지, 숫자라면 1보다 큰지 0인지 등등에 따라서 반환값이 바뀌니 이점을 유의하셔서 예제를 보면 좋을듯 합니다.
그럼 bool 타입 변환 예제 한번 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 파이썬 bool 타입 변환 예제
 
# bool(정수) : 정수를 불리언으로 변환
a1 = bool(54)
print(f'1-1. bool(54) = {a1}, type(a1) = {type(a1)}')
 
a2 = bool(0)
print(f'1-2. bool(0) = {a2}, type(a2) = {type(a2)}')
 
 
# bool(실수) : 실수를 불리언으로 변환
b1 = bool(3.141592)
print(f'2-1. bool(3.141592) = {b1}, type(b1) = {type(b1)}')
 
b2 = bool(0.00)
print(f'2-2. bool(0.00) = {b2}, type(b2) = {type(b2)}')
 
 
# bool(불리언) : 불리언을 불리언으로 변환
c1 = bool(True)
print(f'3-1. bool(True) = {c1}, type(c1) = {type(c1)}')
 
c2 = bool(False)
print(f'3-3. bool(False) = {c2}, type(c3) = {type(c2)}')
 
 
# bool(문자, 문자열) : 문자열을 불리언으로 변환 (비어있는지 아닌지가 중요)
= bool('BlockDMask')
print(f'4-1. bool(\'BlockDMask\') = {e}, type(e) = {type(e)}')
 
= bool('')
print(f'4-2. bool(\'\') = {f}, type(f) = {type(f)}')
 
cs

결과값

불리언 타입 변환은 딱 2가지만 기억하면 됩니다.
숫자의 경우(정수 실수 둘다)에는 0인지 0이 아닌지에 따라서 True, False가 결정 되고
문자의 경우에는 문자열이 비었는지, 비어있지 아닌지에 따라 True, False가 결정 됩니다.

이상으로 파이썬의 타입변환, 형변환, 데이터 타입 변환에 대해서 알아보았습니다.
감사합니다.

반응형