앞에 0이 있을 때 Python의 이상한 동작
Python으로 작업할 때 0으로 시작하는 작은 정수를 입력할 때 예상치 못한 결과가 발생할 수 있습니다. 이상 현상은 8진법으로 알려진 이러한 숫자를 8진수로 해석하는 언어의 능력에서 비롯됩니다. 숫자.
구체적으로 Python 인터프리터는 이러한 선행 0을 8진수 표현의 표시로 처리합니다. 예를 들어, 정수 011은 다음과 같이 해석됩니다.
011 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
이는 Python 인터프리터에 "011"을 입력할 때 값 9가 반환되는 이유를 설명합니다.
그러나 이 동작은 버전입니다. -특정한. Python 3에서는 "0o" 접두사를 사용하여 8진수 상수를 명시적으로 표시해야 합니다. 예를 들면 다음과 같습니다.
0o11 = 1⋅8¹ + 1⋅8⁰ = 9 (in octal)
Python 2.6 이상 버전에서는 이전(선두 0) 형식과 새로운(접두사 0o) 형식이 모두 지원됩니다.
요약하자면 Python에서 앞에 오는 0은 다음을 나타냅니다. 8진수. Python 2에서는 앞에 오는 0만 사용하여 이러한 숫자를 표현할 수 있지만 Python 3에서는 "0o" 접두사가 필요합니다.
위 내용은 Python이 앞에 0이 있는 숫자를 8진수로 해석하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!