작성
·
264
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
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
질문자님거 보고 저도 궁금해서 한번 해봤네요
print('{:>4d}'.format(42)) 결과값 = (공백)(공백)42
print('{:4d}'.format(42)) 결과값 = (공백)(공백)42
print('{:4}'. format('42')) 결과값 = 42(공백)(공백)
이렇게 d를 빼고나니 원하는 결과값이 나오는데 format값의 정수여부랑 상관있는 게 아닐까요?
0