이 질문은 int
함수의 사용법이 아니라 내부적으로 어떻게 수행되는지를 설명합니다.파이썬이 문자열을 정수로 변환하는 방법
소스 코드가 C로되어 있기 때문에 어떤 일이 벌어지고 있는지 이해할 수 없습니다.
파이썬이 어떻게 문자열 "123"
을 정수 123
으로 변환하는지 설명 할 수 있습니다. 어떤 작업이 수행됩니까?
이 질문은 int
함수의 사용법이 아니라 내부적으로 어떻게 수행되는지를 설명합니다.파이썬이 문자열을 정수로 변환하는 방법
소스 코드가 C로되어 있기 때문에 어떤 일이 벌어지고 있는지 이해할 수 없습니다.
파이썬이 어떻게 문자열 "123"
을 정수 123
으로 변환하는지 설명 할 수 있습니다. 어떤 작업이 수행됩니까?
https://github.com/python/cpython/blob/2d305e1c46abfcd609bf8b2dff8d2065e6af8ab2/Objects/longobject.c#L2075-L2366에는 찾고있는 구현이 포함되어 있습니다. C를 이해하는 것이 유용하지만, 많은 접근법을 설명하는 중간에 큰 주석 (2132 줄부터 시작)이 있습니다.
파이썬 문자열을 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- 경우 발생되는 문자열 중간에 숫자가 오거나 숫자가 아닌 문자가있는 경우.
C 함수를 제공하여 스스로 검색 할 필요가 없습니까? –
"어떻게 작동하는지 이해하고 싶지만 쓰여진 언어를 이해하지 못하고 그것을 배우는 대신에 설명해 주길 바란다"는 것이 내가이 질문을 해석 한 방법입니다. –
@ TadhgMcDonald-Jensen, 통역사 업데이트를 고려해주십시오 – micgeronimo