파이썬 딕셔너리 관련 간단한 질문
조회수 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 답변
-
딕셔너리가 아닙니다. 전혀 관계가 없는 문법입니다.
f-string 이라고 하는 문자열 포매팅과 관련된 문법입니다.
f"{r:2}"
는r
이라는 변수의 값을두칸(2)
이 되도록 스트링을 만들어라 라는 의미입니다.python f-string 이라고 검색해서 사용법을 익히세요. 매우 편리하니까 이 기회에 잘 연습하도록 하세요.
https://docs.python.org/ko/3/reference/lexical_analysis.html#f-strings
댓글 입력