반응형

1. int(), float() 함수

가장 간단한 방법은 int() 함수와 float() 함수를 사용하는 것입니다. 예를 들어, 문자열 "123"을 정수로 변환하려면 다음과 같이 할 수 있습니다.

string = "123"
number = int(string)
print(number) # 123

문자열 "3.14"를 실수로 변환하려면 다음과 같이 할 수 있습니다.

string = "3.14"
number = float(string)
print(number) # 3.14

2. eval() 함수

eval() 함수를 사용할 수 있습니다. eval() 함수는 문자열로 전달된 수식을 계산하고 그 결과를 반환합니다.

string = "123"
number = eval(string)
print(number) # 123

string = "3.14"
number = eval(string)
print(number) # 3.14

하지만, eval() 함수는 보안에 취약하므로 사용을 자제하는 것이 좋습니다.

3. ast.literal_eval() 함수

ast.literal_eval() 함수는 eval() 함수와 비슷하지만, 안전하게 수식을 계산할 수 있도록 제한을 걸어두었다는 장점이 있습니다.

import ast
string = "123"
number = ast.literal_eval(string)
print(number) # 123

문자열이 숫자로 변환이 불가능 한 경우 ValueError가 발생합니다. 

string = "abc"
number = int(string) # ValueError: invalid literal for int() with base 10: 'abc'

따라서, 해당 문자열이 숫자로 변환 가능한지 확인해야 합니다.

string = "abc"
if string.isnumeric():
    number = int(string)
else:
    print("Not valid number")

또는 try, except문을 사용할 수도 있습니다.

string = "abc"
try:
    number = int(string)
except ValueError:
    print("Not valid number")
반응형