이지스퍼블리싱 알고리즘 책에 나온 일부입니다.
다시 복습하는데 아무리 봐도 이해가 안가는 부분이 있어서 질문드립니다.
관련 커뮤니티에도 질문이 여럿 있지만 답변을 아무도 해주지 않아서...
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
가 의미하는게 무엇인지도 잘 모르겠습니다