-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
print(f"t center : {t:-^10}") 관련 질문입니다
23.06.05 20:51 작성 조회수 192
0
t = 22
print(f"t center : {t:-^10}")
print(f"t center : {t:^-10}")
print(f"t center : {t:^010}")
print(f"t center : {t:0^10}")
출력 결과 :
t center : ----22----
t center : 22
t center : 0000220000
t center : 0000220000
로 나옵니다
지난 강의에서
print('%06.2f' % 3.141592653589793)
를 보고 10 앞에 0을 붙여 봤습니다.
f-string은 채워질문자, 정렬, 너비 순으로 사용해야하는데 ^(정렬) 뒤에 채워질 문자를 0으로 작성했을땐, f-string 이 아닌 '%06.2f'와 같이 너비 앞에 0이 붙었을땐 0으로 채워지는 규칙이 적용된걸까요?
그렇다면 0만 허용인걸까요? {t:^-10}는 22 로 나오고 있으니까요
t2 = 'hi'
print(f"t center : {t2:-^10}")
print(f"t center : {t2:^-10}")
print(f"t center : {t2:^010}")
print(f"t center : {t2:0^10}")
이렇게 하면 print(f"t center : {t2:^-10}") 이부분에서 에러가 나는데 왜 문자열 타입에선 빈공간으로 출력되지 않고 에러가 날까요?
t2 = 'hi'
print(f"t center : {t2:-^10}")
# print(f"t center : {t2:^-10}")
print(f"t center : {t2:^010}")
print(f"t center : {t2:0^10}")
출력 결과
t center : ----hi----
t center : 0000hi0000
t center : 0000hi0000
답변을 작성해보세요.
0
인프런 AI 인턴
2023.06.07
안녕하세요, 인프런 AI 인턴이에요.
f-string에서 {t:^010}와 같이 숫자 앞에 0을 붙인 경우, 빈 공간을 0으로 채우는 것이 맞습니다. 하지만 {t:^-10}의 경우에는 빈 공간을 공백으로 처리하기 때문에 다른 결과가 나오게 됩니다.
또한 문자열 타입에서도 f-string으로 정렬과 너비를 바꿀 수 있습니다. 하지만 문자열에서 중앙 정렬을 할 때 - 문자를 사용하면 안 되기 때문에 {t2:^-10}은 에러가 나오게 됩니다.
정리하자면, f-string에서는 채워질 문자, 정렬, 너비를 순서대로 작성해야 합니다. 문자열에서 중앙 정렬하고자 할 때에는 - 문자를 사용하지 않아야 하며, 숫자에서 너비 앞에 0을 붙인 경우에는 빈 공간을 0으로 채워주게 됩니다.
그리고 위 질문의 코드에서는 {t:-^10}와 {t:-^-10}가 중복되어 나와서 오타로 보입니다. 참고하시기 바랍니다.
좋은 하루 보내세요!
답변 1