Python에서 문자열을 Int로 변환하는 방법(안전한 캐스팅 및 베이스)

int() 함수를 사용하여 Python에서 문자열을 정수로 변환하는 방법을 알아보세요. 오류를 안전하게 처리하고 숫자를 2진수, 8진수, 16진수로 변환하세요.

Editor에서 이 솔루션을 사용해 보세요.

개요

숫자의 문자열 표현을 실제 정수로 변환하는 것은 애플리케이션 개발에서 자주 수행되는 작업입니다. 캐스팅이라고도 하는 이 프로세스는 원시 사용자 입력을 처리하고, 구성 파일을 읽고, 명령줄 인터페이스에서 인수를 구문 분석하거나, 웹에서 데이터를 스크랩할 때 필수적입니다. Python은 강력한 형식의 언어이므로 숫자를 먼저 캐스팅하지 않으면 숫자의 문자열 표현에 대한 수학 연산을 수행할 수 없습니다.

Python에 내장된 `int()` 생성자는 이 변환을 위한 기본 도구입니다. 가장 간단한 형태로 숫자 문자열(예: `"42"`)을 `int()`에 전달하면 해당 정수가 반환됩니다. 그러나 숫자가 아닌 문자열(예: `"hello"`)이나 부동 소수점 숫자(예: `"3.14"`)를 전달하면 `ValueError`가 발생합니다. 강력한 애플리케이션을 작성하려면 예상치 못한 입력을 적절하게 처리하기 위해 'try-excess' 블록에 캐스팅 작업을 래핑하는 것이 표준 관행입니다.

표준 10진수 변환 외에도 'int()' 함수는 선택적 'base' 인수를 허용합니다. 이를 통해 2진수(2진수), 8진수(8진수) 또는 16진수(16진수)와 같은 다양한 숫자 체계의 숫자를 나타내는 문자열을 쉽게 구문 분석할 수 있습니다. 예를 들어, `int("1010", 2)`는 이진 문자열을 십진 정수 `10`으로 올바르게 구문 분석하여 하위 수준 또는 특수 수학 프로그래밍을 위한 다목적 도구가 됩니다.

코드 및 실행 출력

이 스크립트는 문자열을 정수로 변환하고, 예외를 처리하고, 다양한 기본 표현을 변환하는 방법을 보여줍니다.

# 1. Standard base-10 conversion
num_str = "123"
num = int(num_str)
print(f"Standard conversion: {num} (Type: {type(num).__name__})")

# 2. Handling invalid input gracefully
invalid_str = "abc"
try:
    result = int(invalid_str)
except ValueError:
    print(f"Could not convert '{invalid_str}' to an integer.")

# 3. Converting from different bases (binary and hex)
binary_str = "1011"
hex_str = "ff"
print("Binary '1011' to decimal:", int(binary_str, 2))
print("Hex 'ff' to decimal:", int(hex_str, 16))
터미널 출력
Standard conversion: 123 (Type: int)
Could not convert 'abc' to an integer.
Binary '1011' to decimal: 11
Hex 'ff' to decimal: 255

단계별 구현

  • 숫자 문자열을 내장 int() 함수에 전달합니다.
  • 유효하지 않은 형식을 처리하려면 캐스팅 작업을 try...out ValueError 블록으로 래핑하세요.
  • 다른 진수로 작성된 문자열 값을 변환하려면 두 번째 인수(예: base=16)를 제공하세요.

자주 묻는 질문

'12.34'와 같은 부동 소수점 문자열을 정수로 어떻게 변환할 수 있나요?

먼저 이를 float로 변환한 다음 int(int(float("12.34")))로 변환해야 합니다. int("12.34")를 호출하면 ValueError가 직접 발생합니다.

문자열을 int로 안전하게 변환할 수 있는지 어떻게 확인합니까?

.isdigit() 문자열 메서드를 사용할 수 있지만 음수 기호나 공백에 대해서는 False를 반환한다는 점에 유의하세요. Try-Exception 블록은 가장 강력한 방법입니다.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.