Python에서 앞에 오는 신비한 "0" 숫자 디코딩
Python 2.7.3에 앞에 0이 붙는 작은 정수를 입력하면, 다음과 같은 예상치 못한 결과가 나옵니다.
>>> 011 9 >>> 0100 64 >>> 027 23
이 특이한 점은 Python은 "0"이라는 접두사가 붙은 숫자를 해석합니다. Python 2.x에서 이러한 숫자는 8진수(기본 8) 정수로 간주됩니다.
8진수 공개
8진수 체계에서 각 숫자는 다음의 거듭제곱을 나타냅니다. 8. 예를 들어:
파이썬 3의 최신 접근 방식
Python 2.7.3과 달리 Python 3.0은 앞에 "0"이 붙은 숫자를 8진 정수로 인식하지 않고 대신 오류를 발생시킵니다. Python 3에서 8진수를 나타내려면 "0o" 접두사를 사용해야 합니다(예:
>>> 0o11 9 >>> 0o100 64 >>> 0o27 23
Python 2.x의 레거시 지원
Python 2). x 버전 >= 2.6은 이전 형식(선두 "0")과 새 형식(선두 "0o")을 모두 지원합니다. 8진수의 경우 이전 버전과의 호환성을 제공합니다.
위 내용은 Python 2.x가 앞에 0이 있는 숫자를 8진수로 해석하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!