본문 바로가기

언어/Python

[ 파이썬 / Python ] 문자열을 숫자 변환하기, 숫자를 문자열로 변환하기

반응형

파이썬에서 문자열을 숫자로 변환하는 방법에는 여러 가지가 있습니다. 주로 int() 함수와 float() 함수를 사용하여 문자열을 정수나 실수로 변환합니다. 아래에 각각의 방법을 예제와 함께 설명하겠습니다.

1. 문자열을 정수로 변환

int() 함수 사용

num_str = "123"
num = int(num_str)
print(num)  # 출력: 123
print(type(num))  # 출력: <class 'int'>

문자열이 유효한 정수 형식이 아니면 ValueError가 발생합니다.

invalid_num_str = "123abc"
try:
    num = int(invalid_num_str)
except ValueError as e:
    print(e)  # 출력: invalid literal for int() with base 10: '123abc'

2. 문자열을 실수로 변환

float() 함수 사용

float_str = "123.45"
num = float(float_str)
print(num)  # 출력: 123.45
print(type(num))  # 출력: <class 'float'>

마찬가지로 문자열이 유효한 실수 형식이 아니면 ValueError가 발생합니다.

invalid_float_str = "123.45abc"
try:
    num = float(invalid_float_str)
except ValueError as e:
    print(e)  # 출력: could not convert string to float: '123.45abc'

3. 숫자를 문자열로 변환

숫자를 문자열로 변환하려면 str() 함수를 사용합니다.

num = 123
num_str = str(num)
print(num_str)  # 출력: "123"
print(type(num_str))  # 출력: <class 'str'>

4. 숫자로 변환 가능한지 확인

문자열이 숫자로 변환 가능한지 확인하려면 예외 처리를 사용하는 것이 일반적입니다.

def is_int(s):
    try:
        int(s)
        return True
    except ValueError:
        return False

def is_float(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

print(is_int("123"))  # 출력: True
print(is_int("123abc"))  # 출력: False
print(is_float("123.45"))  # 출력: True
print(is_float("123.45abc"))  # 출력: False

5. 다양한 숫자 형식 처리

문자열이 16진수, 8진수, 2진수인 경우

문자열이 다른 진법(예: 16진수, 8진수, 2진수)일 경우, int() 함수의 두 번째 매개변수를 사용하여 진법을 지정할 수 있습니다.

hex_str = "0x1A"
oct_str = "0o17"
bin_str = "0b1011"

# 16진수 문자열을 10진수 정수로 변환
num_from_hex = int(hex_str, 16)
print(num_from_hex)  # 출력: 26

# 8진수 문자열을 10진수 정수로 변환
num_from_oct = int(oct_str, 8)
print(num_from_oct)  # 출력: 15

# 2진수 문자열을 10진수 정수로 변환
num_from_bin = int(bin_str, 2)
print(num_from_bin)  # 출력: 11

요약

  • 문자열을 정수로 변환: int()
  • 문자열을 실수로 변환: float()
  • 숫자를 문자열로 변환: str()
  • 숫자로 변환 가능한지 확인: 예외 처리 사용 (try-except)
  • 다른 진법의 문자열을 정수로 변환: int()의 두 번째 매개변수로 진법 지정

이와 같은 방법을 통해 파이썬에서 문자열과 숫자 간의 변환을 효과적으로 처리할 수 있습니다.

반응형