Original article: Python Convert String to Int – How to Cast a String in Python

프로그래밍을 하다 보면 종종 자료형을 변환해야 할 필요가 생깁니다.

여러분이 정보를 처리하는 작업을 할 때 한 자료형을 다른 자료형으로 변환할 수 있게 된다면 보다 유연한 대처가 가능해집니다.

Python 프로그래밍 언어에는 자료형을 변환할 수 있는 다양한 내장 함수가 있습니다.

이번 글에서는 문자열을 정수로 변환하는 방법을 배우겠습니다.

그럼 시작해볼까요?

Python의 자료형

파이썬은 다양한 자료형을 지원합니다.

컴퓨터 프로그램에는 서로 다른 다양한 자료들이 존재하고 사용되는데, 자료형은 이러한 자료들을 명시하고 표현하며 범주화하기 위해 쓰입니다.

또한 자료형에 따라 서로 다른 명령들이 사용될 수 있습니다. – 어떤 자료형에서 사용할 수 있는 명령은 종종 다른 자료형에서는 사용할 수 없습니다.

자료형의 한 예로 문자열이 있습니다.

문자열은 텍스트 정보를 전달하기 위해 각각의 문자들이 차례대로 나열된 것입니다.

문자열은 다음과 같이 작은따옴표나 큰따옴표로 둘러싸입니다.

fave_phrase = "Hello world!"

#Hello world!는 큰따옴표로 둘러싸인 문자열입니다.

정수형은 모두 숫자로 되어 있습니다.

정수형은 숫자로 나타낸 데이터를 표현하는 데 사용되고, 정수형과 관련된 작업을 할 때 덧셈, 뺄셈, 곱셈, 나눗셈과 같은 수학적인 명령을 사용할 수 있습니다.

정수형은 작은따옴표나 큰따옴표로 둘러싸여 있지 않습니다.

fave_number = 7

#7은 정수입니다.
#7은 정수이지만 "7"은 정수가 아닌 문자열입니다.
#따옴표로 둘러싸여 있기 때문입니다.

자료형 변환

때때로 자료를 저장하거나 사용자로부터 특정 자료형의 입력을 받을 때, 자료에 다양한 명령을 다루고 수행할 필요가 생깁니다.

각각의 자료형은 각기 다른 방식으로 다루어지기 때문에 종종 자료형을 변환할 필요가 있습니다.

한 자료형을 다른 자료형으로 변환하는 것을 타입 캐스팅(type casting) 또는 형 변환(type conversion)이라고 부릅니다. 많은 프로그래밍 언어들이 한 자료형을 다른 자료형으로 명확하게 변환하기 위해 내장된 형 변환 명령을 제공합니다.

Python에서 문자열을 정수로 변환하는 방법

Python에서 문자열을 정수로 형 변환하기 위해 내장형 함수 int()를 사용합니다.

이 함수는 여러분이 변환하고자 하는 초기의 문자열을 매개변수로 받고, 넘겨받은 문자열과 값이 동등한 정수로 반환합니다.

일반적인 문법은 다음과 같이 생겼습니다: int("str").

문자열로 나타낸 숫자가 있는 다음 예제를 따라해봅시다.

#문자열로 나타낸 숫자 7
print("7")

#type() 메서드로 자료형 확인
print(type("7"))


#출력 결과

#7
#<class 'str'>

문자열로 나타낸 숫자를 동등한 값의 정수형으로 바꾸기 위해, 다음과 같이 int()를 사용합니다.

#문자열을 정수형으로 변환
print(int("7"))

#type() 메서드로 자료형 확인
print(type(int("7")))

#출력 결과

#7
#<class 'int'>

문자열을 정수로 변환하는 실습 예제

여러분은 사용자의 나이를 계산하고 싶습니다. 사용자로부터 입력값을 받아서 계산할 것입니다. 입력값은 항상 문자열 형식이 됩니다.

따라서 사용자가 숫자를 타이핑하더라도 사용자로부터 입력받은 숫자는 문자열이 됩니다.

어떤 숫자에서 사용자가 입력한 숫자 값을 빼는 것과 같은 수학적인 명령을 실행할 때, 문자열로는 수학적인 명령을 수행할 수 없기 때문에 에러가 발생합니다.

아래의 예제를 통해 실제로 해보면서 살펴봅시다.

current_year = 2021

#사용자에게 태어난 연도를 입력받기
user_birth_year_input = input("당신이 태어난 연도는 언제입니까? ")

#이번 연도에서 사용자가 입력한 연도를 빼기
user_age = current_year - user_birth_year_input

print(user_age)

#출력 결과

#당신이 태어난 연도는 언제입니까? 1993
#Traceback (most recent call last):
#  File "demo.py", line 9, in <module>
#    user_age = current_year - user_birth_year_input
#TypeError: unsupported operand type(s) for -: 'int' and 'str'

에러 메세지를 보면 정수형과 문자열 사이에서는 뺄셈을 할 수 없다고 합니다.

type() 메서드를 사용해서 사용자의 입력값이 어떤 자료형인지 확인할 수 있습니다.

current_year = 2021

#사용자에게 태어난 연도를 입력받기
user_birth_year_input = input("당신이 태어난 연도는 언제입니까? ")

print(type(user_birth_year_input))

#출력 결과

#당신이 태어난 연도는 언제입니까? 1993
#<class 'str'>

에러를 피하기 위해 사용자의 입력값을 정수형으로 변환하고 새로운 변수 안에 저장해봅시다:

current_year = 2021

#사용자에게 태어난 연도를 입력받기
user_birth_year_input = input("당신이 태어난 연도는 언제입니까? ")

# int()를 사용해서 사용자가 입력한 원본을 정수로 형 변환하고 새로운 변수에 저장
user_birth_year = int(user_birth_year_input)

#이번 연도에서 형 변환된 사용자 입력값을 빼기
user_age = current_year - user_birth_year

print(user_age)

#출력 결과

#당신이 태어난 연도는 언제입니까? 1993
#28

결론

여기까지 해냈습니다. 이제 여러분은 Python에서 문자열을 정수로 변환하는 방법을 알게 되었습니다!

Python 프로그래밍 언어에 대해 더 배워보고 싶다면, freeCodeCamp가 제공하는 Python Certification에서 시작해보세요.

기초적인 내용부터 시작해서 자료구조와 관계형 데이터베이스와 같이 보다 더 발전된 주제로 나아갈 수 있습니다. 궁극적으로 배운 내용을 적용해서 5개의 프로젝트를 만들게 됩니다.

읽어주셔서 감사합니다. 행복한 코딩하세요!