2016-08-04 6 views
2

이 질문은 int 함수의 사용법이 아니라 내부적으로 어떻게 수행되는지를 설명합니다.파이썬이 문자열을 정수로 변환하는 방법

소스 코드가 C로되어 있기 때문에 어떤 일이 벌어지고 있는지 이해할 수 없습니다.

파이썬이 어떻게 문자열 "123"을 정수 123으로 변환하는지 설명 할 수 있습니다. 어떤 작업이 수행됩니까?

+4

C 함수를 제공하여 스스로 검색 할 필요가 없습니까? –

+0

"어떻게 작동하는지 이해하고 싶지만 쓰여진 언어를 이해하지 못하고 그것을 배우는 대신에 설명해 주길 바란다"는 것이 내가이 질문을 해석 한 방법입니다. –

+0

@ TadhgMcDonald-Jensen, 통역사 업데이트를 고려해주십시오 – micgeronimo

답변

2

파이썬 문자열을 int로 변환 할 때. a = int("123",10) (문자열 "123"을 10 진수로 변환) C 함수가 호출됩니다.

첫째, 그것은 주어진 계산베이스베이스> = 2 = 36 < 또는 0 인 것을 확인하여 (오류 그렇지)
다음, 모든 선행 공백을 무시한다.
(" 123" = "123"되도록)과 수 '-'

염기가 0 인 경우,이 문자열 '0x','0o', '0b', '0'로 시작하는지 검사하고, 각각베이스 세트 (16 진수, 10 진수 '+' 긍정적 또는 부정적으로 표시되어 있는지 확인 , 2 진수, 10 진수).
기준이 제공되지 않으면 기본 기준은 10 (10 진수)입니다. 그것은 다음 link posted by Paul Kehrer

후미 공간의 코드 설명에 설명 된 알고리즘을 사용하여, 개수로 문자 배열을 온으로 진행

는 무시되고, 공간이 있다면 오류 예컨대 needed- 경우 발생되는 문자열 중간에 숫자가 오거나 숫자가 아닌 문자가있는 경우.