Python이 앞에 0이 있는 숫자를 8진수로 해석하는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-21 03:34:26
원래의
320명이 탐색했습니다.

Why Does Python Interpret Numbers with Leading Zeros as Octal?

앞에 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿