파이썬 포맷지정데이터 #의 역할이 무엇인가요?
>>>print(" {:4d} {:09b} {:#05o} {:#05X}".format(200, 200, 200, 200))
200 011001000 0o310 0X0C8
>>> print(" {:#4d} {:#09b} {:#05o} {:#05X}".format(200, 200, 200, 200))
200 0b11001000 0o310 0X0C8
>>> print(" {:4d} {:09b} {:05o} {:05X}".format(200, 200, 200, 200))
200 011001000 00310 000C8
파이썬 포맷지정데이터 부분입니다.
{n:x} 이 괄호 안에서 #이 하는 역할이 무엇이길래 다른 값이 나오는 건가요?
그리고 2진수를 출력할 때는 #을 붙이지 않지만 다른 진수들을 출력할 때 #을 붙여야 하는 이유는 무엇인가요?
안녕하세요
* 진수 접두어
- 2진수 : 0b
- 8진수 : 0o
- 16진수 : 0x
formatter를 사용하여 진수를 표현한 것입니다.
#의 의미는 해당 진수의 접두어입니다.
- 10진수 값 : 200- 2진수 변환 값 : 11001000
- 8진수 변환 값 : 310
- 16진수 변환 값 : c8
{:b} : 2진수 표현 => 11001000
{:9b} : 2진수 표현, 값이 9자리 미만일 경우 왼쪽 공간에 space 채움 => 11001000
{:09b} : 2진수 표현, 값이 9자리 미만일 경우 왼쪽 공간을 0으로 채움 => 011001000
{:#09b} : 2진수 표현, 접두어(0b)를 넣고 접두어 포함하여 9자리 미만일 경우 왼쪽 공간을 0으로 채움 => 0b11001000
{:o} : 8진수 표현 => 310
{:5o} : 8진수 표현, 값이 5자리 미만일 경우 왼쪽 공간에 space 채움 => 310
{:05o} : 8진수 표현, 값이 5자리 미만일 경우 왼쪽 공간을 0으로 채움 => 00310
{:#05o} : 8진수 표현, 접두어(0o)를 넣고 접두어 포함하여 5자리 미만일 경우 왼쪽 공간을 0으로 채움 => 0o310
{:#05x} : 16진수 표현, 접두어(0x)를 넣고 접두어 포함하여 5자리 미만일 경우 왼쪽 공간을 0으로 채움 => 0x0c8
{:#05X} : 위와 동일하지만 접두어 및 값에 영문이 대문자로 처리