Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 변수가 문자열인지 확인하는 방법 – type()과 isinstance() 완벽 정리

파이썬으로 데이터를 다루다 보면, 현재 작업 중인 변수의 데이터 타입을 정확히 파악해야 하는 경우가 자주 발생합니다. 데이터 타입을 사전에 확인하면 해당 타입에 맞는 메서드나 함수를 안전하게 적용할 수 있어 코드의 안정성과 가독성이 크게 향상됩니다. 이번 글에서는 파이썬에서 특정 변수가 문자열(string) 타입인지 확인하는 두 가지 대표적인 방법을 예제와 함께 소개합니다.

type() 함수로 문자열 여부 확인하기

type() 함수는 입력으로 전달된 값의 데이터 타입을 반환합니다. 변수를 type() 함수에 직접 전달한 뒤, 그 결과가 str 클래스와 같은지 비교하면 해당 변수가 문자열인지 간단하게 판별할 수 있습니다.

예제

var1 = "Hello"
var2 = 123
var3 = "123"

# type() 함수 사용
res_var1 = type(var1) == str
res_var2 = type(var2) == str
res_var3 = type(var3) == str

# 결과 출력
print("변수가 문자열인가요? : " + str(res_var1))
print("변수가 문자열인가요? : " + str(res_var2))
print("변수가 문자열인가요? : " + str(res_var3))

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

변수가 문자열인가요? : True
변수가 문자열인가요? : False
변수가 문자열인가요? : True

숫자 123은 False를 반환하고, 따옴표로 감싼 "Hello"와 "123"은 숫자처럼 보여도 실제로는 문자열이므로 True를 반환하는 것을 확인할 수 있습니다.

isinstance() 함수로 문자열 여부 확인하기

isinstance() 함수를 활용하는 방법도 있습니다. 이 함수는 첫 번째 인자로 확인할 변수를, 두 번째 인자로 데이터 타입(str)을 받아 해당 변수가 그 타입에 속하는지 여부를 불리언(True/False) 값으로 반환합니다.

일반적으로 단순한 == 비교보다 isinstance() 사용이 권장되는데, 이는 상속 관계(서브클래스)까지 고려해 주기 때문에 더 유연하고 견고한 타입 검사가 가능하기 때문입니다.

예제

var1 = "Hello"
var2 = 123
var3 = "123"

# isinstance() 함수 사용
res_var1 = isinstance(var1, str)
res_var2 = isinstance(var2, str)
res_var3 = isinstance(var3, str)

# 결과 출력
print("변수가 문자열인가요? : " + str(res_var1))
print("변수가 문자열인가요? : " + str(res_var2))
print("변수가 문자열인가요? : " + str(res_var3))

실행 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다.

변수가 문자열인가요? : True
변수가 문자열인가요? : False
변수가 문자열인가요? : True

마무리

이처럼 파이썬에서는 type() 함수와 isinstance() 함수를 통해 손쉽게 변수가 문자열인지 확인할 수 있습니다. 두 방법 모두 동일한 결과를 반환하지만, 상속 구조를 고려한 유연한 타입 검사가 필요하다면 isinstance()를 사용하는 것이 좋습니다. 상황에 맞는 방법을 선택해 더욱 안정적인 파이썬 코드를 작성해 보세요.