• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

답변을 너무 안해줘서 다시 질문합니다

20.10.02 14:50 작성 조회수 194

2

print('{:4d}'.format(42))  결과값 = (공백)(공백)42

print('{:>4d}'.format(42))  결과값 = (공백)(공백)42

둘이 실행값이 왜 같을까요? ----------------------------------------

분명 강의 설명에서  

:>4d 로 하면 4공간을 확보한 후  왼쪽은 공백으로 채워지고 오른쪽은 42로 채워진다고 했어요

그래서 결론은 :>4d 의 결과값 ====>>>> (공백)(공백)42가 나오는게 맞아요

------------------------------설명이 이상한점---------------------------------

그런데 :4d로 하면 반대로가 된다고 분명히 설명을 했는데 결과값이 같네요??

강의 내용대로라면 결과값이 42(공백)(공백) 되어야 할텐데요 ......왜죠?

심지어 print('{:<4d}'.format(42))  결과값 = 42(공백)(공백)이 나오네요????

알려주시지도 않은 방법인데 설명 부탁드립니다 (빠르고정확한 답변 부탁드립니다제발)

답변 3

·

답변을 작성해보세요.

0

Youngjae Choi님의 프로필

Youngjae Choi

2021.03.15

print('{:>4d}'.format(42))  결과값 = (공백)(공백)42

print('{:4d}'.format(42))  결과값 = (공백)(공백)42

print('{:4}'. format('42')) 결과값 = (공백)(공백)42

저는 이렇게 나왔어요.

저도 같은 수강생입장으로서

제가 이해하기로는
s든 d든 적어줘도 되고, 생략해도 되는 것 같아요.
s에서도 적어줘도 작동하고,
d에서도 안적어줘도 잘 작동합니다.

다만 부등호를 안넣어주면
s에서는 좌측정렬이 우선인것 같고
d에서는 우측정렬이 우선인것 같습니다.
(format 값 기준으로 정렬을 한다고 생각하면 그렇습니다.)

그래서 정확히 하기위해서는
좌측정렬, 우측정렬 할때는 굳이 부등호를 빼지마시고

'{:<4d}' 혹은 '{:>4d}' 하면 정확할 것 같습니다.

s에서도 s를 뺐지만, s까지 적어주는게 정확한 방법 같아요. 
문자열 좌측정렬 한다치면,
print('{:<10s}'.format('nice')) 처럼요.

제가 이해하기론 그렇구요...
전문가님들이 이에 대해 답변을 조금만 수정과 거들어 주신다면, 저를 포함한 초보자들의 답답한 마음을 조금은 해소할 것 같네요.

0

Jh Y님의 프로필

Jh Y

2021.03.12

질문자님거 보고 저도 궁금해서 한번 해봤네요

print('{:>4d}'.format(42))  결과값 = (공백)(공백)42

print('{:4d}'.format(42))  결과값 = (공백)(공백)42

print('{:4}'. format('42')) 결과값 = 42(공백)(공백)

이렇게 d를 빼고나니 원하는 결과값이 나오는데 format값의 정수여부랑 상관있는 게 아닐까요?

0

강지원님의 프로필

강지원

2021.01.02

저가 알려드릴게요. .. 조금만 기다리세요..

+ 근데 이거 설명하기가 좀 어렵네요 ... 저는 - +로 이해했는뎁..