본문 바로가기

python

<누구나 쉽게 배우는 파이썬> 변수의 형변환

반응형

 

저번 글에서 자료형에 대해서 알아보았습니다. 이번 글에서는 변수의 자료형을 변환하는 방법을 알아볼 것입니다. 

파이썬의 형 변환에는 두 가지 종류가 있습니다. 컴퓨터에 저장된 데이터를 기준으로 보았을 때 하나는 저장된 데이터가 바뀌는 형 변환이고 다른 하나는 바뀌지 않는 형 변환입니다. 예를 들어 설명을 해 보자면 문자열 "1"이 있다고 할 때 컴퓨터에는 아스키코드에 따라 이진수로 0011 0000(십진수로 48)이 저장되어 있을 것입니다. 이를 첫 번째 형 변환을 이용해서 정수로 바꾸게 된다면 정수 1이 될 것이고 컴퓨터에 저장된 데이터는 0000 0001로 변하게 됩니다. 하지만 두 번째 형 변환을 이용한다면 컴퓨터에 저장된 데이터는 변하지 않고 변수형은 정수로 바뀌고 변수의 값은 48이 됩니다. 

편의를 위해 첫 번째 형 변환 방식을 사람을 기준으로 한 형 변환 두 번째 형 변환을 컴퓨터가 기준인 형 변환이라고 부르도록 하겠습니다.  

 

변수의 형 변환

사람을 기준으로 한 형 변환

int()

데이터를 정수형으로 변환해 줍니다. 

str형은 숫자로만 이루어진 문자열만 변환이 가능합니다. (ex "123", "46245" 등)

bool형은 True -> 1 False -> 0으로 변환해 줍니다.

flaot형은 소수점 아래의 수를 모두 없애버립니다. 

realNumber = 3.14159265358979
print(int(realNumber))		#3

string = "2834"
print(int(string))		#2834

boolean = True
print(int(boolean))		#1

boolean = False
print(int(boolean))		#0

 

float()

데이터를 실수형으로 변환해 줍니다. 값이 정수라면 .0이 같이 출력됩니다.

str형은 숫자로만 이루어진 문자열만 변환이 가능합니다. (ex "12.3", "462.45" 등)

bool형은 True -> 1.0 False -> 0.0으로 변환해 줍니다.

int형은 소수점에 0이 붙어 실수형인 것을 알 수 있습니다. . (ex 2 -> 2.0)

 

integer = 1
print(float(integer))		#1.0

string = "283.4"
print(float(string))		#283.4

boolean = True
print(float(boolean))		#1.0

boolean = False
print(float(boolean))		#0.0

 

str()

데이터를 문자열로 변환해 줍니다. 

bool형은 True -> True False -> False로 변환해 줍니다.

int형과 flaot형은 특별히 바뀌지 않고 그대로 출력됩니다. 하지만 type을 확인해보면 str이라는 것을 알 수 있습니다.

integer = 1
integer = str(integer)
print(integer)			#1
print(type(integer))		#<class 'str'>

realNumber = 283.4
realNumber = str(realNumber)
print(realNumber)		#283.4
print(type(realNumber))		#<class 'str'>

boolean = True
print(str(boolean))		#True

boolean = False
print(str(boolean))		#False

 

bool()

데이터를 bool형으로 변환해 줍니다.

str은 아무런 값이 없다면 False 어떠한 값이라도 있다면 True가 됩니다. 

float형이나 int형은 값이 0이면 Flase 나머지는 모두 True가 됩니다.

integer = 1
print(bool(integer))		#True

integer = 0
print(bool(integer))		#False

realNumber = 283.4
print(bool(realNumber))		#True

realNumber = 0.0
print(bool(realNumber))		#False

emptyString = ""
print(bool(emptyString))	#False

string = "hi"
print(bool(string))		#True

 

 

컴퓨터를 기준으로 한 형 변환

ord()

문자를 대응하는 유니코드의 정수로 바꾸어 나타내 줍니다. 

따라서 저장된 데이터는 바뀌지 않습니다.

단 문자 하나만 저장되어 있어야 변환이 가능합니다. (ex "A"가능 "hello" 불가능)

(한 글자를 문자 character 여러 글자를 문자열 string 이라고 부릅니다). 

character = "A"
print(ord(character))		#65

character = "ㄱ"
print(ord(character))		#12593

 

참고 스킬

ord를 이용하면 쉽게 대문자인지 판단할 수 있습니다. (조건문을 모르시면 건너 뛰세요)

character = "A"

if ord(character) >= 65 and ord(character) <= 90:		#A:65 Z:90
    print("Uppercase")
elif ord(character) >= 97 and ord(character) <= 122:		#a:97 z:122
    print("Lowercase")

 

char()

정수를 대응하는 문자로 바꾸어 표현해 줍니다.

실수는 안되며 정수만 가능합니다. 

number = 65
print(chr(number))		#A

number = 12593
print(chr(number))		#ㄱ

 

참고 스킬

chr 와 ord 를 사용하여 A부터 Z까지 출력하기 (반복문을 모르신다면 넘어가도 좋습니다.)

character = "A"

for i in range(0,26):
    print(character)
    character = chr(ord(character) + 1)

 

이번 글에서는 변수의 형 변환 방법에 대해서 알아보았습니다.  다음 글에서는 파이썬의 연산자에 대해 알아보도록 하겠습니다. 

반응형