파이썬 딕셔너리 관련 간단한 질문

조회수 651회

이지스퍼블리싱 알고리즘 책에 나온 일부입니다. 다시 복습하는데 아무리 봐도 이해가 안가는 부분이 있어서 질문드립니다. 관련 커뮤니티에도 질문이 여럿 있지만 답변을 아무도 해주지 않아서...

10진수 정수값을 입력받아 2~36진수로 변환하여 출력

def card_conv(x: int, r: int) -> str:
    """정수 x를 r 진수로 변환한 뒤 그 수를 나타내는 문자열을 반환"""

    d = ''  # 변환 뒤 문자열
    dchar = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    n = len(str(x))  # 변환하기 전의 자릿수

    print(f'{r:2} | {x:{n}d}')  # 딕셔너리?....
    while x > 0:
        print('   +' + (n + 2) * '-')  # (수식을 표현할때 자릿수에 따라 ---의 개수를 조절해 깔끔하게 보이게 하기위함)
        if x // r:
            print(f'{r:2} | {x // r:{n}d} … {x % r}')
        else:
            print(f'     {x // r:{n}d} … {x % r}')
        d += dchar[x % r]  # 해당하는 문자를 꺼내 결합
        x //= r

    return d[::-1]  # 역순으로 반환

중 8번째 줄 print(f'{r:2} | {x:{n}d}') 에서 {r:2}가 의미하는게 진수r을 key로 하고 value를 2로 설정하는게 맞나요? 맞다면 이 딕셔너리가 어느 구문에 필요한지 궁금합니다 {x:{n}d}에서 d가 의미하는게 무엇인지도 잘 모르겠습니다

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)