00024를 '00024'로 변환하는 방법은 무엇입니까?값을 변경하지 않고 8 진수를 문자열로 변환하는 방법은 무엇입니까?
파이썬 셸에서 00024를 실행하면 결과로 20이 인쇄됩니다. 00024를 문자열로 변환하려고합니다. 결과는 '00024'입니다. 어떤 제안?
00024를 '00024'로 변환하는 방법은 무엇입니까?값을 변경하지 않고 8 진수를 문자열로 변환하는 방법은 무엇입니까?
파이썬 셸에서 00024를 실행하면 결과로 20이 인쇄됩니다. 00024를 문자열로 변환하려고합니다. 결과는 '00024'입니다. 어떤 제안?
당신은 앞에 0이 정수, format()
명시 적으로 문자열로 숫자 표현하려면 :
format(integer, '05d')
을 할 때마다 출력 값, print
암시 적으로 당신이 얻을 format()
으로, str()
와 문자열로 변환 해당 변환이 명시 적으로 이루어지는 방식을 제어합니다.
대화 형 인터프리터에서 숫자를 반향 출력하면 repr()
이 대신 사용되지만 정수의 경우 출력은 str()
을 사용할 때와 완전히 동일합니다.
데모 : 당신은 문자 그대로의 정수로 00024
를 입력하면
>>> format(24, '05d')
'00024'
, 파이썬 2는 구문 분석 구문 오류입니다 파이썬 3에서 8 진수, 등.
당신이 문자열 있다면, 당신은하지 앞에 0의 임의의 숫자와 함께, 당신이 원하는 일을 할 수 없기 때문에 파이썬 2 쉘 이러한 숫자를 해석하려면
. 기껏해야 결과 정수를 8 진수로 다시 포맷 할 수 있으며 다시 0으로 시작합니다. 즉 다시 문자열을 생성 할 수 있습니다,하지만 당신은 앞에 오는 0의 수를 하드 코딩해야한다 :이 또한 즉시 가 0을 선도하지 않는 것을 숫자를 가지고 실패 할 것이라는 점>>> number = 00024
>>> format(number, '05o')
'00024'
주 ; 제로를 선도
strnumber = format(number, '5d' if number > 0o07777 else '05o')
및 어떤 번호와 숫자 8 또는 9 단순히 구문 오류와 함께 실패합니다 : 그들은 4095 (07777 진수)보다 큰 경우는 값을 자동으로 감지 할 수
>>> 09876
File "<stdin>", line 1
09876
^
SyntaxError: invalid token
더 좋은 방법은 같은 숫자를 문자열로 입력하는 것입니다.
아니요, '00024'는 * 인쇄하지 않습니다 * 24. 24 진수이기 때문에 20을 인쇄합니다. –
아, 미안하지만, 나는 잘못 입력했다. – kangfend