밤하늘공작소
Python에서 문자를 숫자형으로 바꾸기 본문
python에서는 형 변환을 해야 할 상황이 생깁니다. 예를 들면 넘어온 값으로 숫자가 문자형으로 오는 경우 그것으로 숫자 연산(+ - * /)을 할 수 없고, for 등에서 사용할 수 없습니다.
문자를 숫자형으로 바꾸는 방법은 문자를 int()로 감싸는 것입니다.
first = "1"
second = int("2")
print(type(first))
print(type(second))
이 코드를 실행하면 <class "str">과 <class "int">가 차례대로 나올 것입니다. first라는 변수에는 그냥 문자 1을 저장하고, second에는 숫자형으로 변경된 문자 2를 저장했습니다. 그래서 서로의 형이 다른 것입니다.
주의할 점은 이 코드와 같이 논리적으로 말이 되지 않는 것을 숫자로 변경하려고 하면 Value Error가 난다는 것입니다.
first = "1"
second = int("My name is Kim")
print(type(first))
print(type(second))
이제 문자를 숫자로 바꿀 수 있습니다. 그런데 python에는 숫자형(int) 외에도 숫자를 표현하는 방식이 하나 더 있습니다. 바로 소수형(float)입니다.
first = float(1)
second = int(3.6)
print(type(first))
print(type(second))
코드처럼 float와 int로 감싸면, 소수형과 숫자형으로 바꿀 수 있습니다. 코드에서 1을 소수형(float)으로 변경하면 자동으로. 0이 추가되어서 1.0으로 변환됩니다. 여기서 그냥 3.6을 숫자형(int)으로 변환하려고 하면 .(점) 뒤에 숫자를 무시하고 3이 출력이 됩니다.
만약 반올림을 출력하고 싶다면 round() 함수를 사용하면 됩니다.
first = float(1)
second = round(3.6)
print(type(first))
print(type(second))
print(second)
반올림이 되는지 확인하기 위해 second 자체도 출력해보면, <class 'float'>, <class 'int'>, 4 순서로 출력되는 것을 볼 수 있습니다. 버림, 올림 등은 math의 floor, ceil 함수를 사용할 수 있습니다.
이제 문자를 숫자형으로, 숫자와 소수를 소수형과 숫자형으로 바꾸는 것을 해보았습니다. 만약 소수와 숫자를 문자형으로 바꾸고 싶다면 str()로 감싸면 됩니다.
first = str(1)
second = str(3.6)
print(type(first))
print(type(second))
print(first)
print(second)
이 코드를 사용하면 1과 3.6이 문자형(string)으로 잘 변경된 것을 볼 수 있을 것입니다.
'코딩 > Python' 카테고리의 다른 글
Python에서 문자 자르기 (0) | 2022.07.22 |
---|---|
Python 리스트 활용 팁 (6) | 2022.07.11 |
Python에서 포맷팅하기 (0) | 2022.06.28 |
Python 에서 사용자의 입력 받기 (2) | 2022.06.17 |
Python에서 json 파일 읽기·쓰기 (0) | 2022.06.13 |